是否可以通过 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
提交
取消