是否可以通過 Stream API 從 HashMap 生成 String[][]?我嘗試得到這樣的東西:Map<String, String> map = new HashMap<>(); map.put("key1", "value1"); map.put("key2", "value2"); map.put("key3", "value3"); => => String[][] 2dArray => [["key1", "value1"], ["key2", "value2"], ["key3", "value3"]]我用簡單的java做了同樣的事情: Set<Map.Entry<String, String>> entrySet = map.entrySet(); String[][] result = new String[3][2]; int i = 0; for (Map.Entry<String,String> entry : entrySet){ result[i][0] = entry.getKey(); result[i][1] = entry.getValue(); ++i; }
1 回答

慕后森
TA貢獻1802條經驗 獲得超5個贊
是的。您可以流式傳輸 的條目集Map,map每個條目都存儲到包含鍵和值的數組,并Stream<String[]>使用 將其轉換為二維數組toArray()。
String[][] arr =
map.entrySet()
.stream() // Stream<Map.Entry<String,String>>
.map(e -> new String[] {e.getKey(),e.getValue()}) // Stream<String[]>
.toArray(String[][]::new); // String[][]
System.out.println(Arrays.deepToString (arr));
輸出:
[[key1, value1], [key2, value2], [key3, value3]]
添加回答
舉報
0/150
提交
取消