Converteer kaartwaarden naar een lijst in Java
Deze tutorial zal drie programma's uitvoeren om te laten zien hoe hash-kaartwaarden kunnen worden omgezet in een lijst in Java.
Definieer een kaart die moet worden omgezet in een lijst in Java
Voordat we kaartwaarden naar een lijst converteren, moeten we eerst een kaartobject hebben en het vervolgens met twee gegevenstypen toewijzen:een geheel getal (sleutels) en een tekenreeks (waarden) voordat we het in een lijst kunnen groeperen.
De sleutels in dit programma zijn de RPM-waarden van de auto's, terwijl de snaren hun kleuren zijn.
Syntaxis:
Map<Integer, String> M2L = new HashMap<>();
M2L.put(5000, "Toyata Black");
M2L.put(6000, "Audi White");
M2L.put(8000, "BMW Red");
M2L.put(12000, "Buggati Silver");
Gebruik Collector
Streams om een kaart om te zetten in een lijst in Java
Collectors
zijn openbare klassen die objecten in Java uitbreiden. Ze helpen ook bij het verzamelen van elementen en het samenvatten van functies op basis van verschillende benchmarks die gebruikers vooraf definiëren.
Hier gebruiken we de keySet()
methode om sleutels te krijgen door een arraylijst te maken van een set die wordt geretourneerd door een kaart.
Bekijk het volgende voorbeeld, dat een kaart omzet in een lijst.
Voorbeeld 1:
package maptolist;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class MapToList
{
public static void main(String[] args)
{
Map<Integer, String> M2L = new HashMap<>();
M2L.put(1, "New York");
M2L.put(2, "Toronto");
M2L.put(3, "Berlin");
List<Integer> ID = M2L.keySet().stream().collect(Collectors.toList());
ID.forEach(System.out::println);
List<String> NAME = M2L.values().stream().collect(Collectors.toList());
NAME.forEach(System.out::println);
}
}
Uitgang:
1
2
3
New York
Toronto
Berlin
Beschouw de volgende code in ons tweede voorbeeld.
Syntaxis:
List<Integer> nums = maptolist.keySet().stream().collect(Collectors.toList());
Voorbeeld 2:
package maptolist;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class MaptoListExample2
{
public static void main(String[] args)
{
Map<Integer, String> maptolist = new HashMap<>();
maptolist.put(1, "This");
maptolist.put(2, "Is");
maptolist.put(3, "A");
maptolist.put(4, "Demo");
maptolist.put(5, "Example");
List<Integer> nums = maptolist.keySet().stream().collect(Collectors.toList());
System.out.println("Keys:");
nums.forEach(System.out::println);
//Conversion Strings
List<String> chars = maptolist.values().stream().collect(Collectors.toList());
System.out.println("Values:");
chars.forEach(System.out::println);
}
}
Uitgang:
Keys:
1
2
3
4
5
Values:
This
Is
A
Demo
Example
Nu we de onderliggende logica achter kaarten en lijsten hebben gezien en een combinatie van objectverzamelaars hebben gebruikt, staat hieronder een solide map-in-list-programma dat in elke situatie werkt.
De keySet()
functie retourneert een set weergave van toetsen in de kaart, zodat kaartwijzigingen ook van toepassing zijn op de set. Hier vormen we een paar in een wrap om een lijst met sleutels te krijgen, zoals hieronder weergegeven.
Syntaxis:
List<String> setkey = new ArrayList<String>(MAP2LIST.keySet());
Voorbeeld 3:
package maptolist;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MapToListExample3
{
public static void main(String[] args)
{
//Define Map
Map<String, String> MAP2LIST = new HashMap<String, String>();
//Values (key as values)
MAP2LIST.put("1 + 1", "TWO");
MAP2LIST.put("10 - 5", "FIVE");
MAP2LIST.put("2.4 + 3.6", "SIX");
//Define list
List<String> setkey = new ArrayList<String>(MAP2LIST.keySet());
//foreach function extends setkey and prints the output
setkey.forEach(System.out::println);
List<String> setvalue = new ArrayList<String>(MAP2LIST.values());
setvalue.forEach(System.out::println);
}
}
Uitgang:
10 - 5
1 + 1
2.4 + 3.6
FIVE
TWO
SIX