[英]How to get multiple values for multiple keys from Hashmap in a single operation?
我想使用HashMap
獲取多個鍵的值,例如:
HashMap<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "Hello");
map.put(2, "World");
map.put(3, "New");
map.put(4, "Old");
現在我想組合1
和2
值並創建List<String>
輸出。 我可以執行此操作2次獲取操作或創建一個獲取鍵列表並返回值列表的函數。
但是有沒有內置的util函數可以完成相同的工作?
您可以使用輸入Set
來查詢和使用流操作Stream#filter
和Stream#map
來過濾和映射結果,最后將值收集到列表中:
HashMap<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "Hello");
map.put(2, "World");
map.put(3, "New");
map.put(4, "Old");
Set<Integer> keys = Set.of(1, 2);
List<String> values = map.entrySet()
.stream()
.filter(ent -> keys.contains(ent.getKey()))
.map(Map.Entry::getValue)
.collect(Collectors.toList());
System.out.println(values);
輸出:
[Hello, World]
IntStream.of(1, 2)
.map(map::get)
.collect(Collectors.toList());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.