Методи на HashMap Java



HashMap Јава Јава мапа

HashMap Class во Java ги зачувува податоците во форма на клучна вредност парови каде клучните податоци треба да бидат единствени. Можеме да пристапиме до вредностите врз основа на соодветните клучни податоци. HashMap е присутен во рамката за колекција на Java и е дел од пакетот java.util. Работи на принципот на техниката Хашинг.

Хиерархија на Java HashMap

Класата HashMap во Јава ја проширува Апстракт класа АпстрактМапа и го спроведува мапа интерфејс како што е прикажано подолу.

HashMap во Јава

Структура на HashMap и принцип на работа

HashMap во Java работи на принципот на хашинг техника. Во хаширање, ние користиме хаш функции за поврзување на клучот и вредноста во HashMap. HashMap ги зачувува паровите на клучните вредности во форма на низа на јазли каде секој влез се смета за кофа. Кофата не е ништо друго освен елемент во низата. Секој јазол има 3 вредности: Клучни, вредност, и водат до следната јазол Кога повеќе од 1 јазол го делат истиот индекс, тој претставува поврзана листа. Секој јазол е мапиран до индекс во кофата, кој се пресметува со употреба на хаш код ().

HashMap во Јава

Перформанси на HashMap

Перформансите на HashMap во Јава зависат од подолу наведените параметри:

  • Почетен капацитет - Тоа означува колку кофи може да складира HashMap кога е иницијализирано. Стандардно, тоа е 16 парови со клучна вредност
  • Фактор на оптоварување - тоа е процентот на капацитет што треба да се зголеми. Стандардно, тоа е 0.75
  • Праг - ова е производ на факторот на оптоварување и капацитет чијашто зададена вредност е 12 (16 * 0.75)
  • Рехабилирање - ова е процес на удвојување на капацитетот откако ќе достигне вредност на праг.

Декларација за Java HashMap

За да користиме HashMap во Јава, треба да увеземе java.util.HashMap пакет Синтаксата е дадена подолу:

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

Тип на клуч - Тоа е тип на клучни податоци.Eg: Стринг или цел број

ValueType - тоа е видот на податоците за вредноста. На пр: Стринг или цел број

Карактеристики на HashMap

Подолу се дадени одликите на HashMap во Јава:

  • Ги зачувува вредностите што одговараат на секое копче
  • Содржи само уникатни клучеви
  • Не дозволува дупликат клуч, но може да има дупликат вредности
  • Не одржува никаков редослед што значи редоследот по кој се вметнуваат податоците не е ист со редоследот по кој се добиваат.
  • Не е синхронизиран

Конструктори на класа Java HashMap

HashMap поддржува 4 различни конструктори, како што можете да видите во подолу табелата:

ИзведувачОпис
HashMap ()Иницијализира стандарден HashMap
HashMap (мапа)Иницијализира Hashmap со елементи на Map m
HashMap (интензитет на капацитет)Иницијализира хашмап со одредената вредност на целиот капацитет
HashMap (меѓу капацитет, фактор на оптоварување)Го иницијализира хамапот со наведениот капацитет и факторот на оптоварување

Методи на HashMap

Java HashMap ги поддржува сите методи што припаѓаат на интерфејсот на Мапа заедно со методите споменати во подолу табелата

МетодОписПараметар
празнина јасна ()Ги отстранува сите пресликувања на оваа мапа што значи дека картата ќе биде празна
Клон на објекти ()Враќа плитка копија на оваа инстанца на HashMap. Самите клуч и вредности не се клонирани
Булово содржи клуч (клуч на објектот)Се враќа точно ако има вредност за мапирање за наведениот клучклуч - клучот за кој треба да ја вратиме вредноста
Булова содржина Вредност (вредност на објектот)Враќа точно ако има мапирање на клучот за наведената вредноствредност - вредноста за која е одбележан наведениот клуч
Поставете entrySet ()Враќа поставен приказ на мапирање на картата
Булова еднаква (Објект о)Враќа точно ако објектот го има истото мапирање на картатаo - предметот што треба да се спореди
Цел број (клуч на објект)Ја враќа вредноста на наведениот клуч на картата. Се враќа нула ако нема мапирањеклуч - клучот за кој треба да се добие пресликување на вредноста
Цел број getOrDefault (клуч на објектот, стандардна вредност на цел број)Ја враќа вредноста на наведениот клуч ако е мапиран, инаку ја враќа стандардната вредност ако нема мапирањеклуч - клучот за кој цениме мора да се врати
стандардна вредност - стандардната вредност што треба да се врати кога нема мапирање
int hashCode ()Ја враќа хаш-код вредноста на картата
Булово е празно ()Враќа точно е дека хашмапот нема парови на клучни вредности
Постави keySet ()Го враќа поставениот приказ на копчињата присутни на картата
Цел број (клуч за низа, int вредност)Го поврзува клучот со вредноста. Ако клучот е веќе присутен, тој ја заменува старата вредност со нова вредностклуч - клуч за мапирање
вредност - вредност за наведениот клуч
неважечки стави сите (мапа м)Ги здружува сите пресликувања со клучни вредности на m на тековната мапаm - копиите од мапирањето што треба да се додадат на тековната мапа
Цел број putIfAbsent (Копче за низа, цел број)Асоцира на вредноста ако веќе не е мапирана на клучот друго ја враќа тековната вредностклуч - клуч за мапирање
вредност - вредност што треба да се поврзе
Отстрани цел број (клуч на објект)Го отстранува мапирањето за наведениот клуч на картатаклуч - клучот во мапата за кој треба да се отстрани мапирањето
Булово отстранување (клуч на објектот, вредност на објектот)Го отстранува внесувањето на наведениот клуч само ако е мапиран со наведената вредностклуч - клуч на мапата
вредност - вредност мапирана на клучот
Замени цел број (Копче за низа, цел број)Ја заменува вредноста на наведениот клуч со вредноста само ако во моментот е мапиран со одредена вредностклуч - клуч на мапата
вредност - вредност што треба да се замени
Булова замена (Стринг клуч, цела стара вредност, цел број на нова вредност)Го заменува внесувањето на наведениот клуч со нова вредност само ако е веќе мапиран со наведената стара вредностклуч - клуч на картата
стара вредност - стара вредност мапирана на клучот
newvalue - нова вредност што треба да биде мапирана на клучот
големина int ()Ја враќа големината на картата
Стринг до String ()Враќа приказ на низата на картата
Вредности на колекцијата ()Враќа збирен приказ на вредностите присутни на картата

Исклучоци од HashMap

Ги фрла подолу исклучоците во Јава:

  • Истовремена модификација Исклучок
  • IllelgalMonitorStateException
  • NullPointerException
  • Прекинато Исклучок
  • Илегален аргументИсклучок

Додавање елементи на HashMap

Како што можете да видите во примерот подолу, прво создаваме HashMap со име 'студент' со клучот од типот на низа и вредноста на типот цел број. Потоа додаваме индивидуални парови на клучни вредности со користење на стави метод На излезот може да забележите дека редоследот по кој се добиваат елементите не е ист со редоследот по кој се вметнати.

Следно, создаваме втор HashMap со име '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}

Проверете дали мапата содржи специфичен клуч или вредност

Ние ги користиме содржиКлучен метод за да се провери дали одреден клуч е присутен на картата или не. Во овој случај, Dev е присутен и оттука се враќа точно и Ravi не е присутен и оттаму се враќа лажно.

Слично на тоа, содржи Вредност методот проверува дали е присутна одредена вредност. Тука, 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

Отстранете и заменете пар со вредност на клучот

Тука, ние создаваме хашмап во Java на цел број и Стринг напишете за да ги зачувате јазиците. Ние ја заменуваме 2-та вредност со нови податоци и ја заменуваме 3-та вредност ако специфичниот пар клуч-вредност е присутен на картата што ја користи замени () метод.

Потоа, го отстрануваме 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}

Пример за јасни и празни методи

HashMap во Јава користи јасно () метод за расчистување на мапирање на парови со клучни вредности на картата и е празно методот проверува дали картата е празна. Првиот излез е погрешен, бидејќи мапирањето е присутно, а 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");
    
    System.out.println(lang.isEmpty());
    lang.clear();
    
    System.out.println(lang.isEmpty());
    
  }

}
false
true

Повторување преку елементите на HashMap користејќи entrySet

За да ги добиеме индивидуалните парови со клучни вредности на HashMap во Јава, можеме да го користиме влезПостави метод на HashMap заедно со Влегување метод на интерфејсот на Мапа со користење на за-секоја јамка. Методот за внесување на интерфејсот на Мапа има вградени методи како што се geyKey () да се добие клучот и 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

Разгледајте ги елементите користејќи keySet () и вредности ()

Друг начин да ги прегледате елементите на Хашмап е со користење на keySet () метод Користејќи го ова, можеме да добиеме збир од сите клучеви одделно, како што се гледа во примерот подолу. За да ги добиеме сите вредности одделно, можеме да го користиме вредности () метод и испечатете ги во јамка.

Користејќи 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

Заклучок

Во ова упатство научивте за HashMap и неговите различни методи заедно со разни примери.

Суд