如何在Java8中从hashmap中获取值
我正在尝试使用stream将下面的代码重构为java8。 如何获取hashmap中任何特定键的值 请建议如何在Java8中从hashmap中获取值,java,hashmap,java-stream,Java,Hashmap,Java Stream,我正在尝试使用stream将下面的代码重构为java8。 如何获取hashmap中任何特定键的值 请建议 import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; public class HashMapUtility { public static void main(String[] args) { Map<String, List<I
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class HashMapUtility {
public static void main(String[] args) {
Map<String, List<Integer>> map = new HashMap<>();
map.put("key1", Arrays.asList(1, 2, 3, 4));
map.put("key2", Arrays.asList(4, 5, 6, 7));
map.put("key3", Arrays.asList(8, 9, 10, 11));
map.put("key4", Arrays.asList(12, 13, 14, 15));
/*how to write it in JAVA8*/
for (Map.Entry<String, List<Integer>> mapIter : map.entrySet()) {
List<Integer> li = mapIter.getValue();
for (Integer num : li) {
if (num % 2 == 0) {
System.out.println(num);
}
}
}
}
导入java.util.array;
导入java.util.HashMap;
导入java.util.List;
导入java.util.Map;
公共类HashMapUtility{
公共静态void main(字符串[]args){
Map Map=newhashmap();
map.put(“key1”,Arrays.asList(1,2,3,4));
map.put(“key2”,Arrays.asList(4,5,6,7));
map.put(“key3”,Arrays.asList(8,9,10,11));
map.put(“key4”,Arrays.asList(12,13,14,15));
/*如何用JAVA8编写它*/
对于(Map.Entry映射器:Map.entrySet()){
List li=mapIter.getValue();
for(整数num:li){
如果(数值%2==0){
系统输出打印项数(num);
}
}
}
}
}您需要使用
flatMap
将嵌套列表转换为平面列表。之后,您可以执行常见的流操作,如filter
和forEach
public static void main(String[] args) {
Map<String, List<Integer>> map = new HashMap<>();
map.put("key1", Arrays.asList(1, 2, 3, 4));
map.put("key2", Arrays.asList(4, 5, 6, 7));
map.put("key3", Arrays.asList(8, 9, 10, 11));
map.put("key4", Arrays.asList(12, 13, 14, 15));
map.values().stream()
.flatMap(List::stream)
.filter(num -> num % 2 == 0)
.forEach(System.out::println);
}
publicstaticvoidmain(字符串[]args){
Map Map=newhashmap();
map.put(“key1”,Arrays.asList(1,2,3,4));
map.put(“key2”,Arrays.asList(4,5,6,7));
map.put(“key3”,Arrays.asList(8,9,10,11));
map.put(“key4”,Arrays.asList(12,13,14,15));
map.values().stream()
.flatMap(列表::流)
.filter(数值->数值%2==0)
.forEach(System.out::println);
}
看看方法集合#stream、stream、flatMap、stream、filter和stream#forEachIs这是一个家庭作业问题吗?@Turing85-是的,你的家庭作业问题我不太确定我是否理解你的评论。你贴的问题是家庭作业问题吗?