Java List轉Map:如何以List中字段為鍵值高效構建Map?

Java List轉Map:如何以List中字段為鍵值高效構建Map?

Java List轉換為map:使用List字段作為鍵

在Java開發中,經常需要將List集合轉換為Map集合,特別是當需要使用List中某個字段的值作為Map的鍵時。本文將演示如何高效地將包含鍵值對的List轉換為Map,并以List中特定字段的值作為Map的鍵。

假設有一個List,其元素是Map,每個Map包含”id”和”name”兩個字段,例如:[{“id”: 2, “name”: “san”}, {“id”: 3, “name”: “si”}]。目標是將此List轉換為一個Map,其中鍵是每個Map中”id”字段的值(轉換為字符串類型),值是對應的整個Map。最終的Map結構應為:”2″: {“id”: 2, “name”: “san”}, “3″:{“id”: 3, “name”: “si”}。

Java 8的Stream API可以高效地實現此轉換。以下代碼片段演示了如何操作:

立即學習Java免費學習筆記(深入)”;

import java.util.*; import java.util.stream.*;  public class ListToMap {     public static void main(String[] args) {         List<Map<String, Object>> list = new ArrayList<>();         Map<String, Object> item1 = new HashMap<>();         item1.put("id", 2);         item1.put("name", "san");         list.add(item1);          Map<String, Object> item2 = new HashMap<>();         item2.put("id", 3);         item2.put("name", "si");         list.add(item2);          Map<String, Map<String, Object>> map = list.stream()                 .collect(Collectors.toMap(                         item -> String.valueOf(item.get("id")),                         item -> item                 ));          System.out.println(map);     } }

代碼首先創建一個包含兩個Map的List。然后,使用stream().collect(Collectors.toMap(…))方法將List轉換為Map。Collectors.toMap方法接受兩個參數:第一個參數是一個函數,從List中的每個Map中提取鍵值(”id”字段的值,并轉換為String類型);第二個參數是一個函數,返回Map的值(整個Map)。生成的Map以String類型的”id”作為鍵,對應的Map作為值。

這段代碼清晰地展示了如何利用Java 8 Stream API高效地將List轉換為Map,并使用List中指定字段作為Map的鍵,方便地組織和訪問數據。

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享