هش ميپ جاوا جا طريقا



هش ميپ جاوا جاوا نقشو

جاوا ۾ هش ميپ ڪلاس ڊيٽا کي فارم ۾ محفوظ ڪندو آهي اهم قدر جوڙو جتي اهم ڊيٽا منفرد هجڻ گهرجي. اسان ملندڙ قدرن جي بنياد تي قدرن تائين رسائي ڪري سگهون ٿا. هش ميپ جاوا جي ڪليڪشن فريم ورڪ ۾ موجود آهي ۽ java.util پيڪيج جو حصو آهي. اهو هشنگ ٽيڪنڪ جي اصول تي ڪم ڪري ٿو.

جاوا هش ميپ هائري رڪي

جاوا ۾ هش ميپ ڪلاس وڌائي ٿو تجريدي ڪلاس خلاصو نقشو ۽ لاڳو ڪري ٿو نقشو انٽرنيٽ جيئن هيٺ ڏيکاريل آهي.

جاوا ۾ هش ميپ

هش نقپ جو جوڙجڪ ۽ ڪم ڪرڻ جو اصول

جاوا ۾ هش ميپ ڪم جي اصول تي ڪم ڪري ٿو چُڪڻ ٽيڪنڪ. هشنگ ۾ ، اسان هشپ ۾ ڪيش ۽ قدر کي ڳن toڻ لاءِ هش فنڪشن استعمال ڪريون ٿا. هش ميپ ڪي-قدر جوڙي کي هڪ جي صورت ۾ اسٽور ڪري ٿو صف نوڊس جا جتي هر داخلا کي بالٽ سمجهيو ويندو آهي. هڪ بالٽ صف ۾ عنصر کانسواءِ ڪجھ به ناهي. هر نوڊ ۾ 3 قدر آهن: چاٻي, قدر ، ۽ لنڪ اڳيون نوڊ جڏهن 1 نوڊ کان وڌيڪ ساڳيو انڊيڪس شيئر ڪري ٿو ، اها ڳن ،يل فهرست جي نمائندگي ڪري ٿي. هر نوڊ بالٽ ۾ انڊيڪس لاءِ ميپ ڪيو ويو آهي جيڪو هش ڪوڊ () استعمال ڪندي ڪيو ويو آهي.

جاوا ۾ هش ميپ

هش ميپ ڪارڪردگي

جاوا ۾ هش ميپ جي ڪارڪردگي هيٺ ڏنل پيراگراف تي منحصر آهي:

  • شروعاتي ڪيفيت - اهو ظاهر ڪري ٿو ته هاشميپ ڪيترا شروعاتي بڪيتون ذخيرو ڪري سگھن ٿا جڏهن ان کي شروعاتي بڻايو وڃي. ڊفالٽ طور ، اهو آهي 16 اهم قدر جوڙو
  • لوڊ فيڪٽر ـ اهو صلاحيت جو سيڪڙو آهي جنهن کي وڌائڻ جي ضرورت آهي. ڊفالٽ طور ، اهو آهي 0.75
  • حد - اهو لوڊ عنصر ۽ گنجائش جو محصول آهي جنهن جي بيهڪ وارو قدر 12 (16 * 0.75)
  • ٻيهر ورجائڻ - اهو هڪ حد تائين قيمت حاصل ڪرڻ کانپوءِ گنجائش کي ٻٽي ڪرڻ جو عمل آهي.

جاوا هش ايمپ اعلان

جاوا ۾ هش ايمپ استعمال ڪرڻ لاءِ ، اسان کي درآمد ڪرڻ جي ضرورت آهي java.util.Hash ميپ پئڪيج نحو هيٺ ڏنل آهي.

HashMap<KeyType,ValueType> map = new HashMap<>();

چاٻي جو قسم - اهو اهم ڊيٽا جو قسم آهيمثلاً: اسٽرنگ يا انٽيگر

ويليو ٽائپ - اها قدر جي ڊيٽا جو قسم آهي. مثلا: اسٽرنگ يا انٽيگر

هش ميپ خاصيتون

هيٺيون جاوا ۾ هشميپ جا خاصيتون آهن.

  • هر ڪنجي سان ملندڙ قيمتون
  • صرف منفرد ڪنڊن تي مشتمل آهي
  • نقل واريون چالن جي اجازت نه ٿو ڏئي پر نقل ٿيل قدر آھن
  • اهو ڪنهن به آرڊر کي برقرار نٿو رکي جنهن جو مطلب اهو آهي ته ڊيٽا جنهن ۾ داخل ڪيو ويو آهي ساڳيو ڪو به آرڊر ناهي جنهن ۾ اهو واپس ورتو ويو هجي.
  • اهو غير هم وقت سازي وارو هوندو آهي

جاوا هش ميپ ڪلاس تعمير ڪندڙن

هش ميپ 4 مختلف تعمير ڪندڙن جي حمايت ڪري ٿو جئين توهان هيٺ ڏنل جدول ۾ ڏسي سگهو ٿا.

تعمير ڪندڙوضاحت
هش ميپ ()هڪ ابتدائي هشميپ کي تيار ڪري ٿو
هش ميپ (نقشي)نقشي ايم جي عناصر سان هشپ کي شروعات ڪئي
هش ميپ (Int گنجائش)هيشپ کي شروعاتي ظرفيت سان گڏ شروع ڪري ٿو
هش ميپ (انٽي گنجائش ، فلوٽ لوڊ فيڪٽر)هيشميپ کي شروعاتي گنجائش ۽ لوڊ ڪارڻ سان شروعات ڪري ٿو

هش ميپ طريقا

جاوا هش ايمپ انهن سڀني طريقن جي مدد ڪري ٿو جيڪي نقشي سان واسطو رکن ٿيون ، جدول ۾ هيٺ ڏنل طريقن سان گڏوگڏ

جو طريقووضاحتسميجي
خالي ڪيو ويو ()هن نقشي ۾ سڀ نقشا ڪovesي ڇڏيندا آهن جنهن جو مطلب آهي نقشو خالي هوندو
شئي ڪلون ()ھن هشميپ مثال جي ٻل ڪاپي ڏيکاري آھي. چاٻي ۽ قيمتون پاڻ ۾ کلون نه ٿيون
بولين تي مشتمل آهي ڪيئي (Object key)سچائي موٽندي آھي جيڪڏهن مخصوص نقشي جي لاءِ نقشي جي قيمت آھيkey - جنهن لاءِ اسان کي قدر واپس وٺڻ جي ضرورت آهي
بولين ۾ شامل آهي ويليو (مقصد جي قيمت)سچائي موٽندي آھي جيڪڏھن مخصوص نقش جي لاءِ ڪيپ جو نقشه ٺاھيو ويندو آھيقيمت - قيمت جنهن جي وضاحت ٿيل چاٻي ميپ ٿيل آهي
سيٽ داخلا سيٽ ()نقشي جي نقشي جو ھڪڙي مقرر ڪيل منظر موٽائيندو آھي
بولين جي برابر (آرٽيڪل او)صحيح ورجائي ٿو جيڪڏهن ھن نقشي جي نقشي واري ساڳئي نقش آھيo - شي کي ڀيٽڻ آھي
انٽيگر حاصل (آبجمينٽ ڪيڊ)نقشي ۾ مخصوص چاٻي وارو قدر واپس ڪري ٿو. ڪا نقشي نه هوندي جيڪڏهن اهو نقشو نه ٿيندو آهيkey - جنهن لاءِ قيمت جي نقشه بندي ڪرڻ گهرجي
Integer getOrDefault (Object key، Integer defaultvalue)نقشه ٺاھيو ويو مخصوص لپي جي قيمت ڏي ٿو ، ٻي صورت ۾ نقشه ٺاھڻ جي قيمت ڏياريندو آھي اگر نقشه ٺاھيو ناھيkey - جنهن جي لاءِ اسان قيمت ڏيڻو پوندو
ڊيفالٽ ويليو - ڊفالٽ ويل قيمت واپس ٿيڻ نه ايندي جڏهن ڪا ميپنگ نه هوندي
int هيش ڪوڊ ()نقشي جو هش ڪوڊ وارو قدر واپس ڏئي ٿو
بولين خالي آهي ()سچو موٽائي ٿو هيشميپ کي ڪي قدر ويليو جوڙو ناهي
سيٽ سيٽ ڪريو ()نقشي ۾ موجود ڪيز جو سيٽ وارو ڏيک موٽائيندو
انٽيجر رکيل (اسٽرنگ ڪي ، int ويليو)قيمت کي چاٻي سان ملندڙ آھي. جيڪڏهن چاٻي اڳ ۾ ئي موجود آهي ، اها پراڻي قيمت کي نئين قيمت سان تبديل ڪري ٿينقشي لاءِ چاٻي
مخصوص چاٻي لاءِ قدر
باطل ٿيل سڀئي (نقشو ايم)موجوده نقشي ۾ ايم جي سڀني اهم - نقشي کي ملندڙن - نقشي جي ڪاپي موجوده نقشي ۾ شامل ڪرڻ لاءِ
Integer putIfAbsent (اسٽرنگ ڪيجي ، انٽيگر ويليو)ايسوسيئيشن ويليو جيڪڏهن پهريان کان ڪيپ تي نقش ٿيل ناهي ته هاڻوڪي ويليو موٽندي آهينقشي لاءِ چاٻي
قيمت - ملندڙ هجڻ جي قيمت
انٽيجر هٽايو (آبجيو ڪيڊ)نقشي ۾ ڏنل مخصوص چاٻي لاءِ نقشه ڪي ٿوkey - نقشي ۾ چاٻي جنهن لاءِ نقشي کي ختم ڪرڻو پيو
بولين ڪ removeي ڇڏيو (Object key ، Object value)مخصوص مخصوص جي داخلا کي صرف ان وقت ڪovesي ٿو جيڪڏهن اها مخصوص قيمت سان نقش ٿيل هجينقشي ۾ چاٻي
قيمت - چابيءَ لاءِ نقشو کنيا ويندا
انٽيجر بدل (اسٽرنگ ڪيجي ، انٽيگر ويل)قيمت جي قيمت کي خاص ويليو سان مٽائي ڇڏيندو آهي صرف انهي وقت جيڪڏهن ڪي قيمت سان نقشه لڳل هوندينقشي ۾ چاٻي
قيمت - مٽائڻ لاءِ قيمت
بولين جي بدلي (اسٽرنگ ڪنجير ، انوگر پراڻي ويلو ، انٽيگر نئين ويليو)نئين قيمت سان مخصوص مخصوص جي داخلا کي صرف ان صورت ۾ بدلائي ٿو جيڪڏهن اهو اڳ ۾ ئي oldاڻايل پراڻي قدر سان نقش ٿيل هجينقشي ۾ اهم - چاٻي
پراڻي ويليو - پراڻي ويليو جي اهم نقشي تي
نئين ويليو ـ ڪيلي ڏانهن نقشو ٺاھيو ويو آھي
انٽر سائز ()نقشي جي سائيز کي واپس آڻيندي
اسٽرنگ ڪرڻ ()نقشي جي ھڪڙي ھڪڙي نمائندگي ڏيکاري ٿو
جمع ڪرڻ جا قدر ()نقشي ۾ موجود قدرن جو مجموعو نظارو موٽائيندو آھي

هش ميپ استثنا

اهو هيٺيان استثنا کي جاوا ۾ اڇلائي ٿو:

  • سمورو ترميمي موصوف
  • آئيليگل ميٽرڪٽر اسٽيٽ ايڪسسيشن
  • نيل پوائنٽر حاصل ڪرڻ
  • مداخلت ٿيل عقيدت
  • غيرقانوني دستاويز حاصل ڪرڻ

هاشميپ تي عناصر شامل ڪندي

جيئن ته توهان هيٺ ڏنل مثال ۾ ڏسي سگهو ٿا ، پهرين اسان String type ۽ Integer type جي ويلنگ سان ”شاگرد“ نالي هش ايمپ ٺاهي رهيا آهيون. ان کان پوء اسان انفرادي چاٻي-قيمت واريون جوڙا شامل ڪيون ٿا وجهي طريقو. توهان نتيجو ۾ ڏسي سگهو ٿا ته آرڊر جنهن ۾ عناصر کٽيا ويندا آهن ساڳيو ئي ناهي جنهن آرڊر ۾ هن کي داخل ڪيو ويو.

اڳيون ، اسان هڪ ٻيو هش نقپ ٺاهيو جنهن جو نالو ’اسٽو‘ آهي ۽ پوءِ شامل ڪيو وڃي 2 مکيه قيمت وارا جوڙا. ان کان پوءِ اسان شاگردن جي نقشي ۾ اضافو ڪيو رکيل طريقو.

import java.util.HashMap;
public class HashMapAdd {

  public static void main(String[] args) {
    HashMap<String,Integer> student = new HashMap<>();
    student.put("Arthi", 100);
    student.put("Dev", 105);
    student.put("Banu",102);
    student.put("Rishi", 108);
    System.out.println("Elements in student map:");
    System.out.println(student);
    
    HashMap<String,Integer> stu = new HashMap<>();
    stu.put("Ravi",110);
    stu.put("Tejas", 112);
    System.out.println("Elements in stu map:");
    System.out.println(stu);
    
    student.putAll(stu);
    
    System.out.println("Elements in student map after invoking putAll method:");
    System.out.println(student);
  }

}
Elements in student map:
{Dev=105, Banu=102, Rishi=108, Arthi=100}
Elements in stu map:
{Ravi=110, Tejas=112}
Elements in student map after invoking putAll method:
{Dev=105, Ravi=110, Tejas=112, Banu=102, Rishi=108, Arthi=100}

چيڪ ڪريو ته نقشي ۾ ھڪڙي خاص چاٻي يا قدر شامل آھي

اسان استعمال ڪريون ٿا مشتمل آهي اهو چيڪ ڪرڻ جو طريقو ته نقشي ۾ هڪ مخصوص چاٻي موجود آهي يا نه. انهي حالت ۾ ، ديو موجود آهي ۽ تنهن ڪري اهو سچ ٿو موٽي ۽ روي موجود ناهي ۽ ان ڪري غلط موٽي ٿو.

ساڳي طرح ويليو شامل آهي طريقو چيڪ ڪيو ته ڪا مخصوص قدر موجود آهي. هتي 102 موجود آهن پر 110 موجود ناهي ۽ ان ڪري غلط واپس اچي ٿو.

import java.util.HashMap;
public class HashMapAdd {

  public static void main(String[] args) {
    HashMap<String,Integer> student = new HashMap<>();
    student.put("Arthi", 100);
    student.put("Dev", 105);
    student.put("Banu",102);
    student.put("Rishi", 108);
    System.out.println("Elements in student map:");
    System.out.println(student);
    
    System.out.println(student.containsKey("Dev"));
    System.out.println(student.containsKey("Ravi"));
    
    System.out.println(student.containsValue(102));
    System.out.println(student.containsValue(110));
  }

}
Elements in student map:
{Dev=105, Banu=102, Rishi=108, Arthi=100}
true
false
true
false

هڪ اهم ويليو کي هٽايو ۽ هٽايو

هتي ، اسان جاوا ۾ انٽيگر ۽ هشميپ ۾ هشميپ ٺاهيون ٿا اسٽرنگ ٻوليون اسٽور ڪرڻ لاءِ ٽائيپ ڪريو. اسان ٻئي قدر کي نئين ڊيٽا سان تبديل ڪريون ٿا ۽ 2rd ويليو کي تبديل ڪريون جيڪڏهن مخصوص ڪيلي ويليو جوڙي استعمال ڪندي نقشي ۾ موجود آهي بدلايو () طريقو.

پوءِ ، اسان 3 واري عنصر کي ڪلي استعمال ڪندي ختم ڪريون ٿا ۽ ۽ 1 عنصر کي ڪلي قدر استعمال ڪندي هٽايو ختم ڪريو () طريقو.

import java.util.HashMap;
public class RemoveHashMap {

  public static void main(String[] args) {
    HashMap<Integer,String> lang = new HashMap<>();
    lang.put(1, "Java");
    lang.put(2, "C");
    lang.putIfAbsent(3, "C++");
    System.out.println(lang);
    
    lang.replace(2, "PHP");
    System.out.println(lang);
    
    lang.replace(3, "C++", "JavaScript");
    System.out.println(lang);
    
    lang.remove(3);
    System.out.println(lang);
    
    lang.remove(1, "Java");		
    System.out.println(lang);
    
    
  }

}
{1=Java, 2=C, 3=C++}
{1=Java, 2=PHP, 3=C++}
{1=Java, 2=PHP, 3=JavaScript}
{1=Java, 2=PHP}
{2=PHP}

صاف ۽ خالي طريقن جو مثال

جاوا ۾ هش ميپ استعمال ڪري ٿو صاف ڪريو نقشي ۾ اهم ويليو پئسن جي نقشي کي صاف ڪرڻ جو طريقو ۽ خالي آهي طريقو چيڪ ڪيو ته نقشو خالي آهي يا نه. نقشو ٺاھڻ جي پهرين ٻاھرئين آھي غلط آھي ۽ ٻئي ٻاھر صحيح آھي جڏھن نقشي ۾ ڪيئي ويليوئر ڪڙيون ناھن استعمال ڪرڻ کان پوء.

import java.util.HashMap;
public class RemoveHashMap {

  public static void main(String[] args) {
    HashMap<Integer,String> lang = new HashMap<>();
    lang.put(1, "Java");
    lang.put(2, "C");
    
    System.out.println(lang.isEmpty());
    lang.clear();
    
    System.out.println(lang.isEmpty());
    
  }

}
false
true

entrySet استعمال ڪندي هش ميپ عناصر ذريعي terيرائڻ

جاوا ۾ هشميپ جي انفرادي-قيمت واريون جوڙن کي واپس وٺڻ لاءِ ، اسان استعمال ڪري سگهون ٿا داخلا سيٽ سان گڏ هش ايمپ جو طريقو داخل ٿيڻ نقشي جو انٽرنيٽ استعمال ڪرڻ جو طريقو هرهڪ لوپ لاءِ. نقشي جي انٽرفيس جو داخلا طريقو بلٽ ان طرح جا طريقا آهن گاڪي () چاٻي ۽ حاصل ڪريو () وٺڻ ويليو حاصل ڪرڻ اسان استعمال ڪري سگهون ٿا سائيز () نقشي جي ماپ کي حاصل ڪرڻ جو طريقو.

import java.util.HashMap;
import java.util.Map;
public class IterateHashMap {

  public static void main(String[] args) {
    HashMap<String,String> cityState = new HashMap<>();
    cityState.put("Bangalore", "Karnataka");
    cityState.put("Chennai", "TamilNadu");
    cityState.put("Madurai", "TamilNadu");
    cityState.put("Mumbai", "Maharashtra");
    
    System.out.println("Size of map is : " + cityState.size());
    
    for(Map.Entry<String,String> m : cityState.entrySet())
    {
      System.out.println(m.getKey() + " : " + m.getValue());
    }

  }

}
Size of map is : 4
Chennai : TamilNadu
Madurai : TamilNadu
Mumbai : Maharashtra
Bangalore : Karnataka

KeySet استعمال ڪندي عنصرن کي لوپ ڪريو () ۽ قيمتون ()

هاشپ عناصر ذريعي toرڻ جو هڪ ٻيو طريقو آهي استعمال ڪرڻ سان ڪيٽ سيٽ () طريقو. انهي کي استعمال ڪندي ، اسان سڀني چابين جو سيٽ الڳ طور تي حاصل ڪري سگھون ٿا جيئن هيٺ ڏنل مثال ۾ ڏٺو ويو. سڀ قيمتون الڳ الڳ حاصل ڪرڻ لاءِ ، اسان استعمال ڪري سگھون ٿا قدر () طريقو ۽ انهن کي لوپ ۾ پرنٽ ڪريو.

keySet استعمال ڪندي ، اسان پڻ استعمال ڪندي لوپ لاءِ جاري ڪري چيم-ويلنگ جوڙن کي پرنٽ ڪري سگھو ٿا حاصل ڪريو () لاڳاپيل قدر حاصل ڪرڻ جو طريقو.

import java.util.HashMap;
import java.util.Map;
public class IterateHashMap {

  public static void main(String[] args) {
    HashMap<String,String> cityState = new HashMap<>();
    cityState.put("Bangalore", "Karnataka");
    cityState.put("Chennai", "TamilNadu");
    cityState.put("Madurai", "TamilNadu");
    cityState.put("Mumbai", "Maharashtra");
    
    System.out.println("Printing only keys:");
    for(String s : cityState.keySet())
    {
      System.out.println(s);
    }
    System.out.println();
    System.out.println("Printing only values: ");
    for(String c : cityState.values())
    {
      System.out.println(c);
    }
    System.out.println();
    System.out.println("Printing both key-value pairs:");
    for(String v : cityState.keySet())
    {
      System.out.println("Key: " + v + " | value: " + cityState.get(v));
    }
  }

}
Printing only keys:
Chennai
Madurai
Mumbai
Bangalore

Printing only values: 
TamilNadu
TamilNadu
Maharashtra
Karnataka

Printing both key-value pairs:
Key: Chennai | value: TamilNadu
Key: Madurai | value: TamilNadu
Key: Mumbai | value: Maharashtra
Key: Bangalore | value: Karnataka

ٿڪل

هن سبق ۾ ، توهان Hashاڻيو آهي هاشمپ ۽ ان جا مختلف طريقا سان گڏ مختلف مثالن سان گڏ.

حوالي