logo

Як ітерувати карту в Java

У Java ітерацію через Map можна виконувати різними способами. Пам’ятайте, що ми не можемо перебирати карту безпосередньо за допомогою ітератори , оскільки інтерфейс карти не є частиною колекції. Усі карти в Java реалізовані Карта інтерфейс. У Java є такі типи карт:

  • HashMap
  • TreeMap
  • LinkedHashMap

Карта не є колекцією, але все ж розглядайте цю структуру колекцій. Отже, карта — це інтерфейс, який не розширює інтерфейс колекцій.

Ітератор

Ітератор — це інтерфейс, який використовується для повторення колекції. Він займає місце Enumeration в Java Collections Framework. Різниця між ітератором і перерахуванням така:

  • Ітератор може проходити застарілі та не застарілі елементи, тоді як Enumeration може обходити лише застарілі елементи.
  • Ітератор є стійким до збоїв, тоді як Enumeration не є таким.

Перегляди колекції

Метод представлення колекції дозволяє переглядати карту як колекцію такими способами:

    KeySet:Це набір ключів, які містяться на карті.значення:Це сукупність значень, які містяться на карті.entrySet:Це набір пари ключ-значення на карті.

Інтерфейс карти також має невеликий вкладений інтерфейс під назвою Map.entry . Перегляд колекції надає єдиний засіб для повторення карти.

що таке rom

Використання інтерфейсу Iterator

Приклад ітерації над HashMap

круговий розклад
 public static void main(String args[]) { HashMap hm = new HashMap(); //implements map interface hm.put(110,'Ravi'); hm.put(120,'Prateek'); hm.put(130, 'Davesh'); hm.put(140, 'Kamal'); hm.put(150, 'Pawan'); Iterator it = hm.keySet().iterator(); //keyset is a method while(it.hasNext()) { int key=(int)it.next(); System.out.println('Roll no.: '+key+' name: '+hm.get(key)); } } } 

Вихід:

 Roll no.: 130 name: Davesh Roll no.: 150 name: Pawan Roll no.: 120 name: Prateek Roll no.: 140 name: Kamal Roll no.: 110 name: Ravi 

Використання методу keyset() і value().

keyset(): А keySet() метод HashMap клас використовується для ітерації по ключах, що містяться в карті. Він повертає набір перегляду ключів.

Синтаксис

 Set keyset() 

значення(): А значення() метод HashMap клас використовується для ітерації значень, що містяться на карті. Він повертає представлення колекції значень.

Синтаксис

зберегти відео youtube vlc
 Collection values() 

приклад

 import java.util.Map; import java.util.HashMap; class IterationExample2 { public static void main(String[] arg) { Map map = new HashMap(); map.put('Gujarat', 'Gandhi Nagar'); map.put('Uttar Pradesh', 'Lucknow'); map.put('Sikkim', 'Ganagtok'); for (String State : map.keySet()) //using keyset() method for iteration over keySet System.out.println('State: ' + State); for (String Capital : map.values()) //using values() for iteration over keys System.out.println('Capiatl: ' + Capital); } } 

Вихід:

 State: Gujarat State: Sikkim State: Uttar Pradesh Capital: Gandhi Nagar Capital: Ganagtok Capital: Lucknow 

Використання Map.entrymethod

Map.Entry — це інтерфейс. Він повертає представлення колекції карти, елементи якої належать до цього класу.

Метод map.entrySet() повертає представлення Set відображення, що міститься на карті. Зміни на карті також відображаються в наборі і навпаки. Він також підтримує видалення елементів, що видаляє відповідне відображення з карти.

Синтаксис

 Set<map.entry> entrySet() </map.entry>

приклад

дискета
 import java.util.*; class IterationExample3 { public static void main(String[] arg) { Map map = new HashMap(); map.put(&apos;Cookies&apos;, 90.87f); map.put(&apos;Dry Fruits&apos;, 434.23f); map.put(&apos;Oats&apos;, 220.00f); map.put(&apos;Chocolate&apos;, 70.89f); for (Map.Entry entry : map.entrySet()) //using map.entrySet() for iteration { //returns keys and values respectively System.out.println(&apos;Item: &apos; + entry.getKey() + &apos;, Price: &apos; + entry.getValue()); } } } 

Вихід:

 Item: Oats, Price: 220.0 Item: Dry Fruits, Price: 434.23 Item: Cookies, Price: 90.87 Item: Chocolate, Price: 70.89 

Ітерація по ключах і отримання значень

приклад

У наступному прикладі ми спочатку перебираємо ключі, а потім отримуємо значення.

 import java.util.*; class IterationExample4 { public static void main(String[] arg) { Map map = new HashMap(); map.put(&apos;Sumit&apos;, &apos;Singh&apos;); map.put(&apos;Devesh&apos;, &apos;Mishra&apos;); map.put(&apos;Rahul&apos;, &apos;Tiwari&apos;); for (String name: map.keySet()) //iteration over keys { //returns the value to which specified key is mapped String lastname=map.get(firstname); System.out.println(&apos;Key: &apos; + name + &apos;, Value: &apos; + lastname); } } } 

Вихід:

 Key: Rahul, Value: Tiwari Key: Devesh, Value: Mishra Key: Sumit, Value: Singh 

Використання методу forEach().

The для кожного() метод ArrayList використовується для виконання дії для кожного елемента Iterable, доки всі елементи не будуть оброблені.

Синтаксис

 public void forEach(Consumer action) 

Метод приймає дію (дію, яку потрібно виконати для кожного елемента) як параметр. Нічого не повертає. Це кидає NullPointerException якщо вказана дія нульова.

приклад

дата машинопису

У наступному прикладі ми використовуємо лямбда-вираз у методі forEach() для друку кожного елемента карти.

 import java.util.Map; import java.util.HashMap; class IterationExample5 { public static void main(String[] arg) { Map map = new HashMap(); map.put(&apos;TCS&apos;, &apos;0 billion&apos;); map.put(&apos;Wipro&apos;, &apos;.5 billion&apos;); //iteration over map using forEach() method map.forEach((k,v) -&gt; System.out.println(&apos;Company: &apos;+ k + &apos;, Net worth: &apos; + v)); } } 

Вихід:

 Company: Wipro, Net worth: .5 billion Company: TCS, Net worth: 0 billion