Java8 如何快速遍历 Map

本贴最后更新于 1298 天前,其中的信息可能已经时移世易

听说你还在用keySet()entrySet()遍历map?老铁快提提速吧,试试java8的新特性Lambda 表达式。


1、什么是Lambda 表达式

Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。
Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。
使用 Lambda 表达式可以使代码变的更加简洁紧凑。

2、基本语法

(parameters) -> expression

(parameters) ->{ statements; }

3、Lambda 表达式遍历集合

3.1、List集合
//1、创建List集合并添加元素
List<String> list = new ArrayList<>();
list.add("柠檬班");
list.add("ningmengban");
list.add("lemon");
//2、通常的遍历方式
for (String s : list) {
	System.out.println(s);
}
//3、Lambda 表达式
list.forEach(x->{
	System.out.println(x);
});
//4、更炫酷的的方式:方法引用 
list.forEach(System.out::println);
3.2、Set集合
//1、创建Set集合并添加元素
Set<String> set = new HashSet<>();
set.add("java8");
set.add("java9");
set.add("java10");
//2、通常的遍历方式
for (String s : set) {
    System.out.println(s);
}
//3、Lambda 表达式
set.forEach(x->{
    System.out.println(x);
});
//4、更炫酷的的方式:方法引用 
set.forEach(System.out::println);
3.3、Map集合
//1、创建Map集合并添加元素
Map<String,Integer> map = new HashMap<>();
map.put("java", 10);
map.put("php", 20);
map.put("python", 30);
map.put("C#", 40);
map.put("C", 50);
map.put("C++", 60);
//2、遍历方式1
Set<String> keySet = map.keySet();
for (String key : keySet) {
    System.out.println(key + ":" + map.get(key));
}
//3、遍历方式2
keySet.forEach(key -> System.out.println(key + ":" + map.get(key)));
//4、遍历方式3
Set<Map.Entry<String, Integer>> entries = map.entrySet();
for (Map.Entry<String, Integer> entry : entries) {
    System.out.println(entry.getKey() + ":" + entry.getValue());
}
//5、遍历方式4
entries.forEach(entry -> System.out.println(entry.getKey() + ":" + entry.getValue()));
//6、遍历方式5
map.forEach((key,value)-> System.out.println(key+":"+value));
回帖
请输入回帖内容 ...