在IT邦幫忙看到的問題,JAVA如何使用lambda取得ArrayList<HashMap<key,val>>
指定key的val。
HashMap<Integer, String> map1 = new HashMap<>();
map1.put(1, "a");
HashMap<Integer, String> map2 = new HashMap<>();
map2.put(1, "b");
HashMap<Integer, String> map3 = new HashMap<>();
map3.put(1, "c");
ArrayList<HashMap<Integer, String>> mapList = new ArrayList<>();
mapList.add(map1);
mapList.add(map2);
mapList.add(map3);
Integer key = 1;
// lambda 取得指定key的value
List<String> values = mapList.stream() // 取出每個Map
.map(e -> e.get(key)) // 找到符合key的val
.collect(Collectors.toList()); // 把val蒐集起來
System.out.println(values); // [a, b, c]
每次看到直接使用Class型態的集合例如ArrayList<HashMap<K, V>>
都會想這大概是博弈業的程式:p。
參考:
沒有留言:
張貼留言