标题:使用Lambda表达式或匿名内部类遍历集合Collection及Map
一、 注意:
- 遍历Set,List是使用
list/set.forEach(new Consumer<String>()
- 而Map是使用
map.forEach(new BiConsumer<String,Integer>()
/**
* 使用Lambda表达式或匿名内部类遍历集合Collection及Map
* 注意:
* 遍历Set,List是使用list/set.forEach(new Consumer<String>()
* 而Map是使用map.forEach(new BiConsumer<String,Integer>()
* @author dell
*
*/
public class Crazy298Test {
public static void main(String[] args) {
System.out.println("------------------测试Set");
Set<String> set=new HashSet<>();
set.add("aa");
set.add("bb");
set.add("cc");
System.out.println("使用匿名内部类遍历容器Set");
set.forEach(new Consumer<String>() {
@Override
public void accept(String t) {
System.out.println(t);
}
});
System.out.println("使用Lambda表达式遍历容器Set");
set.forEach(t->{
System.out.println(t);
});
System.out.println("------------------测试List");
List<String> list=new ArrayList<>();
list.add("aa");
list.add("bb");
list.add("cc");
System.out.println("使用匿名内部类遍历容器List");
list.forEach(new Consumer<String>() {
@Override
public void accept(String t) {
System.out.println(t);
}
});
System.out.println("使用Lambda表达式遍历容器List");
list.forEach(t->{
System.out.println(t);
});
System.out.println("------------------测试Map");
Map<String ,Integer > map=new HashMap<>();
map.put("aaa", 1);
map.put("bbb", 2);
map.put("ccc", 3);
System.out.println("使用匿名内部类实现遍历Map");
map.forEach(new BiConsumer<String,Integer>() {
public void accept(String key,Integer value) {//为什么是对应的,因为源码写的是对应的
System.out.println(key+"-->"+value);
}
});
System.out.println("使用Lambda表达式实现遍历Map");
map.forEach((key,value)->{ //String key,Integer value
System.out.println(key+"-->"+value);
});
System.out.println("------------------测试Map 二");
Map<String ,List<String> > map2=new HashMap<>();
map2.put("jjj", list);
System.out.println("使用匿名内部类实现遍历Map");
map2.forEach((key,value)->{
System.out.println(key+"-->"+value);;
});
System.out.println("使用Lambda表达式实现遍历Map");
map2.forEach(new BiConsumer<String,List<String>>() {//不写泛型就是Object,Object,注意写泛型的位置
public void accept(String key,List<String> list) {
System.out.println(key+"-->"+list);
}
});
}
}