Program Java pro převod mapy (HashMap) na seznam

V tomto programu se naučíte různé techniky převodu mapy na seznam v Javě.

Abychom porozuměli tomuto příkladu, měli byste znát následující programovací témata Java:

  • Rozhraní Java Map
  • Java HashMap
  • Seznam Java
  • Třída Java ArrayList

Příklad 1: Převést mapu na seznam

 import java.util.*; public class MapList ( public static void main(String() args) ( Map map = new HashMap(); map.put(1, "a"); map.put(2, "b"); map.put(3, "c"); map.put(4, "d"); map.put(5, "e"); List keyList = new ArrayList(map.keySet()); List valueList = new ArrayList(map.values()); System.out.println("Key List: " + keyList); System.out.println("Value List: " + valueList); ) )

Výstup

 Seznam klíčů: (1, 2, 3, 4, 5) Seznam hodnot: (a, b, c, d, e)

Ve výše uvedeném programu máme mapu Integer a String s názvem map. Vzhledem k tomu, že mapa obsahuje pár klíč, hodnota , potřebujeme dva seznamy pro uložení každého z nich, jmenovitě keyList pro klíče a valueList pro hodnoty.

keySet()K získání všech klíčů jsme použili metodu mapy a vytvořili ArrayListjsme z nich seznam klíčů . Podobně jsme použili metodu mapy values()k získání všech hodnot a vytvořili ArrayListjsme z nich valueList.

Příklad 2: Převést mapu na seznam pomocí streamu

 import java.util.*; import java.util.stream.Collectors; public class MapList ( public static void main(String() args) ( Map map = new HashMap(); map.put(1, "a"); map.put(2, "b"); map.put(3, "c"); map.put(4, "d"); map.put(5, "e"); List keyList = map.keySet().stream().collect(Collectors.toList()); List valueList = map.values().stream().collect(Collectors.toList()); System.out.println("Key List: " + keyList); System.out.println("Value List: " + valueList); ) )

Výstup programu je stejný jako v příkladu 1 .

Ve výše uvedeném programu jsme místo použití ArrayListkonstruktoru použili stream()k převodu mapy na seznam.

Převedli jsme klíče a hodnoty na stream a převedli jsme je na seznam pomocí collect()metody předávající Collectors' toList()jako parametr.

Zajímavé články...