在 Java 中將 map 值轉換為列表

Sarwan Soomro 2023年1月30日 2022年4月22日
  1. 在 Java 中定義要轉換為列表的 map
  2. 在 Java 中使用 Collectors 流將 map 轉換為列表
在 Java 中將 map 值轉換為列表

本教程將執行三個程式來展示如何將 Hashmap 值轉換為 Java 中的列表。

在 Java 中定義要轉換為列表的 map

在將 map 值轉換為列表之前,我們必須先擁有一個 map 物件,然後為其分配兩種資料型別:整數(鍵)和字串(值),然後再將其分組為列表。

該程式中的鍵是汽車的 RPM 值,而字串是它們的顏色。

語法:

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");

在 Java 中使用 Collectors 流將 map 轉換為列表

Collectors 是在 Java 中擴充套件物件的公共類。它們還幫助收集元素並根據使用者預定義的各種基準來總結特徵。

在這裡,我們使用 keySet() 方法通過從 map 返回的集合建立陣列列表來獲取鍵。

檢視以下示例,該示例將 map 轉換為列表。

示例 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);
    }
}

輸出:

1
2
3
New York
Toronto
Berlin

在我們的第二個示例中考慮以下程式碼。

語法:

List<Integer> nums = maptolist.keySet().stream().collect(Collectors.toList());

示例 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);
    }
}

輸出:

Keys:
1
2
3
4
5
Values:
This
Is
A
Demo
Example

現在我們已經瞭解了 map 和列表背後的底層邏輯並使用了物件 Collectors 的組合,下面是一個可靠的 map 到列表程式,它可以在任何情況下工作。

keySet() 函式返回 map 中鍵的集合檢視,以便 map 修改也適用於該集合。在這裡,我們在一個 wrap 中形成一對來獲得一個鍵列表,如下所示。

語法:

List<String> setkey = new ArrayList<String>(MAP2LIST.keySet());

示例 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);
    }
}

輸出:

10 - 5
1 + 1
2.4 + 3.6
FIVE
TWO
SIX
Sarwan Soomro avatar Sarwan Soomro avatar

Sarwan Soomro is a freelance software engineer and an expert technical writer who loves writing and coding. He has 5 years of web development and 3 years of professional writing experience, and an MSs in computer science. In addition, he has numerous professional qualifications in the cloud, database, desktop, and online technologies. And has developed multi-technology programming guides for beginners and published many tech articles.

LinkedIn

相關文章 - Java List

相關文章 - Java Map