د هاشمیپ میتودونه جاوا



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

په جاوا کې د هش میپ ټولګی د معلوماتو په شکل کې زیرمه کوي کیلي ارزښت جوړې پکې چیرې چې کلیدي معلومات باید ځانګړي وي. موږ کولی شو د اړوندو کلیدي معلوماتو پراساس ارزښتونو ته لاسرسی ومومو. هاش میپ د جاوا د راټولولو چوکاټ کې شتون لري او د جاوا.یوټیل بسته برخه ده. دا د هشینګ تخنیک په اصولو کار کوي.

د جاوا هش میپ هایریري

په جاوا کې د هش میپ ټولګی غزول کیږي انتزاعي ټولګي د خلاصې نقشه او تطبیقوي نقشه انٹرفیس لکه څنګه چې لاندې ښودل شوي.

په جاوا کې هش میپ

د هش میپ جوړښت او کاري اصول

په جاوا کې هش میپ د ټوپونه تخنیک. په هشینګ کې ، موږ په هاش میپ کې د کیلي او ارزښت سره اړیکې لپاره هش افعال کار کوو. د هش میپ د کلیدي ارزښت جوړې جوړې د an په ب .ه ساتي سور د نوډونو ځای چیرې چې هر ننوتل د بالټ په توګه ګ .ل کیږي. یو سطل په صف کې یو عنصر نه بل څه دی. هر نوډ 3 ارزښتونه لري: کلیدي, ارزښت ، او د بل نوډ کله چې د 1 نوډ څخه ډیر ورته ورته شاخص شریک کړي ، نو دا لینک شوی لیست استازیتوب کوي. هر نوډ په بالټۍ کې شاخص ته نقشه کیږي کوم چې د هش کوډ () په کارولو سره محاسبه کیږي.

په جاوا کې هش میپ

د هاش میپ فعالیت

په جاوا کې د هش میپ فعالیت په لاندې پیرامیټونو پورې اړه لري:

  • لومړني ظرفیت - دا په ګوته کوي چې د هاش میپ څومره بالټونه ساتلی شي کله چې پیل کیږي. په ډیفالټ ډول ، دا دی 16 کیلي ارزښت جوړې
  • د بار فابریکه - دا د ظرفیت سلنه ده چې اړتیا یې باید لوړه شي. په ډیفالټ ډول ، دا دی 0.75
  • حد - دا د بار فاکتور او ظرفیت محصول دی چې اصلي قیمت یې دی 12 (16 * 0.75)
  • ریششن کول - دا د درشل ارزښت ته رسیدو وروسته د ظرفیت دوه چنده کولو پروسه ده.

د جاوا هش میپ اعلامیه

په جاوا کې د هاش میپ کارولو لپاره ، موږ وارداتو ته اړتیا لرو java.util.HashMap کڅوړه ترکیب په لاندې ډول ورکړل شوی دی:

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

کیلي ټایپ - دا د کلیدي معلوماتو ډول دی.Eg: سټینګ یا انډیجر

د ارزښت ټایپ - دا د ارزښت ډاټا ډول دی. د مثال په توګه: سټینګ یا انډیجر

د هش میپ ب Featuresې

لاندې په جاوا کې د هاش میپ ب featuresې دي:

  • د هر کیلي سره ورته ارزښتونه ذخیره کوي
  • یوازې ځانګړي کیلي لري
  • جعلي کیلي ته اجازه نه ورکوي مګر ډبلیک ارزښتونه لري
  • دا هیڅ حکم نه ساتي د کوم معنی چې هغه حکم په کوم کې چې ډاټا ایښودل کیږي د ورته ترتیب سره ورته ندي پداسې حال کې چې دا بیرته ترلاسه کیږي.
  • دا نه همغږی شوی دی

د جاوا هش میپ ټولګي جوړونکي

هش میپ 4 مختلف جوړونکي ملاتړ کوي لکه څنګه چې تاسو کولی شئ لاندې جدول کې وګورئ:

جوړونکیDescription
هش میپ ()د ډیفالټ هش میپ پیل کوي
هش میپ (میپیم)د میپ ایم عناصر سره هاشامپ پیلوي
د هاش میپ (بشپړ ظرفیت)هش میپ د ټاکل شوي ظرفیت انډییر ارزښت سره پیل کوي
د هش میپ (بشپړ ظرفیت ، د فلوټ لوډ فیکټر)د ټاکل شوي ظرفیت او لوډ فیکټر سره هشامپ پیلوي

د هش میپ طریقې

جاوا هش میپ ټولې هغه میتودونه ملاتړ کوي چې د میپ انٹرفیس پورې تړاو لري په لاندې جدول کې ذکر شوي میتودونو سره

MethodDescriptionد پاراميټر
باطل روښانه ()پدې نقشه کې ټولې نقشې لرې کوي د دې معنی ده چې نقشه به خالي وي
څیز کلون ()د دې هش میپ مثال یوه کوچنۍ کاپي راولي. کلي او ارزښتونه پخپله کلون ندي
بولین لري (کیلي)ریښتیني راځي که چیرې د ټاکل شوي کیلي لپاره نقشه ایښودلو ارزښت شتون ولريکیلي - کلیدي د کوم لپاره چې موږ اړتیا لرو ارزښت بیرته ترلاسه کړئ
بولین لري (د ارزښت ارزښت)ریښتیني راځي که چیرې د ټاکل شوي ارزښت لپاره د کیلي نقشه ويارزښت - ارزښت د کوم لپاره چې ټاکل شوې کیلي جوړیږي
سیټ ننوت سیټ ()د نقشې نقشه کولو سیټ لید راستون کوي
د بولان مساوي (اعتراض)ریښتیني راځي که چیرې اعتراض د نقشه ورته ورته نقشه ولريo - مقابل کې مقایسه شي
بشپړه ترلاسه کول (د څیز کلي)په نقشه کې د ټاکل شوي کیلي ارزښت راستنوي. دا ناپلیږي که چیرې نقشه شتون ونه لريکیلي - کلیدي د کوم لپاره چې د ارزښت نقشه باید بیرته ترلاسه شي
د بشپړ ګیټ اوډ ډیفالټ (د څیز کیليد ټاکل شوې کیلي ارزښت که نقشه شوې وي ، بیرته راګرځي ، که نور هیڅ نقشه شتون ونلري نو ډیفالټ ارزښت بیرته راګرځيکیلي - هغه کیلي د کوم لپاره چې موږ ارزښت ورکوو باید بیرته راستانه شي
defaultvalue - د ډیفالټ ارزښت بیرته راستنیدل کله چې هیڅ نقشه شتون ونلري
INT هش کوډ ()د نقشې هش کوډ ارزښت راستنوي
بولین خوندي دی ()ریښتیني راستنیدنه دا ده چې hashmap هیڅ د کلیدي ارزښت جوړه نلري
کیسی سیټ () تنظیم کړئپه نقشه کې موجود د کیليګانو سیټ لید بیرته راولي
د انټژر پوټ (د تار کولو کیلي ، بشپړ ارزښت)کلید د ارزښت سره مل کوي. که کیلي لا دمخه شتون لري ، دا زاړه ارزښت د نوي ارزښت سره بدلويکیلي - د نقشه ایښودو لپاره کیلي
ارزښت ټاکل شوې کیلي لپاره ارزښت
باطل PutAll (نقشه م)اوسنۍ نقشې ته د m ټول ارزښتونه - د نقشې ایښودل شریکويم - د نقشه کاپيګانې چې اوسنۍ نقشه کې اضافه شي
بشپړ انډیټ PutIfAbmitted (د سټینګ کیلي ، د عدد ارزښت)ارزښت سره مل کوي که چیرې دمخه کلید ته نقشه شوی نه وي بل اوسنی ارزښت بیرته راشيکیلي - د نقشه ایښودو لپاره کیلي
ارزښت - ارزښت په تړاو
بشپړه ایستل (د توکي کیلي)په نقشه کې د ټاکل شوي کیلي لپاره نقشه ایستلکیلي - په نقشه کې کلي د کوم لپاره چې نقشه ایستل باید لرې کړل شي
د بولین لرې کول (د څیز کیلي ، د څیز ارزښت)د ټاکل شوي کیلي ننوتنه لرې کوي یوازې که چیرې دا د ټاکل شوي ارزښت سره نقشه شوې ويکیلي - په نقشه کې کیلي
ارزښت - ارزښت کیلي ته نقشه شوی
د بشپړ ځای بدلول (د سټراګ کیلي ، د بشپړ ارزښت)د ټاکل شوې کیلي ارزښت یوازې د ارزښت سره بدلوي که چیرې دا اوس د ځینې ارزښت سره نقشه شوېکیلي - په نقشه کې کیلي
ارزښت - ارزښت باید بدل شي
بولین ځای په ځای کړئ (د سټراګ کیلي ، بشپړ عمر ، د نوي نوي ارزښت)د ټاکل شوي کیلي ننوتنه د نوي ارزښت سره بدلوي یوازې هغه وخت چې دا دمخه د ټاکل شوي پخواني ارزښت سره نقشه شوې ويکیلي - په نقشه کې کیلي
زاړه ارزونه - زاړه ارزونه کیلي ته نقشه شوی
نوي ارزښت - نوي کیلي ته کیلي ته نقشه شی
اندازه اندازه ()د نقشې اندازه راوباسي
سټرینګ سټرینګ ()د نقشې سلسله نماینده ګي کوي
د راټولولو ارزښتونه ()په نقشه کې موجود د ارزښتونو ټولګه لید بیرته راستنوي

د هش میپ استثناوې

دا په جاوا کې لاندې استثناوې غورځوي:

  • یوځل بیا جوړول
  • غیرقانوني مانیټر سټیټ اکسپسیون
  • NullPointerException
  • مداخله شوې انګیرنه
  • غیرقانوني ارګانیزم

په هش میپ کې د عناصرو اضافه کول

لکه څنګه چې تاسو کولی شئ په لاندې مثال کې وګورئ ، لومړی موږ د سټینګ ډول او کليدي اندازې ارزښت کلیدي سره د زده کونکي په نوم هاش میپ رامینځته کوو. موږ بیا د کړي میتود. تاسو کولی شئ په محصول کې وګورئ چې هغه ترتیب چې په کې عناصر بیرته راشي د امر سره ورته نه وي په کوم کې چې دا دننه شوي.

بیا ، موږ د 'stu' په نوم دوهم هاش میپ رامینځته کوو او بیا د 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

د کیلي-ارزښت جوړه جوړه کړئ او ځای یې ورکړئ

دلته ، موږ د انټا انټرنیټ او جاوا کې هشامپ رامینځته کوو تار د ژبو ساتلو لپاره یې ولیکئ. موږ دوهم ارزښت د نوي ډاټا سره ځای په ځای کوو او دریم ارزښت ځای په ځای کوو که چیرې د ځانګړي کلیدي ارزښت جوړه جوړه وکاروئ په نقشه کې شتون لري ځای پرځای کړئ () میتود.

بیا ، موږ د کیلي په کارولو سره دریم عنصر لرې کوو او د عنصر په کارولو سره د کلیدي ارزښت په کارولو 3 عنصر لرې کوو لرې کړئ () میتود.

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

د ننوت سیټ په کارولو سره د هاشمیپ عناصرو له لارې توکی

په جاوا کې د هاش میپ انفرادي کلیدي ارزښت جوړو ترلاسه کولو لپاره ، موږ وکاروو ننوتنه د دې سره هاش میپ میتود د ننوتلو د میپ انٹرفیس میتود د د هرې لوپ لپاره. د نقشې انٹرفیس کې د ننوتلو میتود دننه جوړ شوي میتودونه لکه جېکی () د کیلي ترلاسه کول او getValue () اړوند ارزښت ترلاسه کول. موږ کولی شو دا وکاروو اندازه () د نقشې اندازې ترلاسه کولو لپاره میتود.

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

د کیليټ () او ارزښتونو () په کارولو د عناصرو له لارې لوپ کړئ

د هاشامپ عناصرو له لارې لوپ کولو بله لاره د کیسیټ () میتود. د دې په کارولو سره ، موږ کولی شو د جلا جلا ټولو کلیدونو سیټ ترلاسه کړو لکه څنګه چې لاندې مثال کې لیدل شوي. د ټولو ارزښتونو جلا کولو لپاره ، موږ وکاروو ارزښتونه () د لپ لپاره میتود او چاپ یې کړئ.

د کیسیټ په کارولو سره ، موږ کولی شو د لوپ لپاره په کارولو سره تکرار کولو سره د کلي ارزښت ارزښت جوړه چاپ کړو ترلاسه کړئ () د اړوندو ارزښتونو ترلاسه کولو میتود.

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

پایله

پدې لوست کې ، تاسو د مختلف مثالونو سره د هاشمیپ او د هغې مختلف میتودونو په اړه زده کړل.

ماخذ