Java >> Java-zelfstudie >  >> Java

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

Java-tag