lambda表达式对集合的遍历
引言:
从去年年末就一直想好好看一下lambda表达式,可是一直没有静下心来看。
这次项目里用的对集合操作几乎都是通过lambda表达式方式的。没办法,就只好去学习了。
正文:
通过普通的for循环来对集合的遍历是我之前一直在做的事,简单,易理解。
但是lambda表达式对集合的遍历,可以算的上很优秀了,代码也很美。
首先,创建一个测试的实体类,如下:
class Lambda2Entity{
private String name;
private Integer age;
public Lambda2Entity(String name, Integer age) {
this.name = name;
this.age = age;
}
public Lambda2Entity() { }
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
再创建三个集合,list、set、map。如下:
List<Lambda2Entity> list = new ArrayList<>();
Set<Lambda2Entity> set = new LinkedHashSet<>();
Map<String,Lambda2Entity> map = new LinkedHashMap<>();
for (int i = 1; i <= 6; i++) {
Lambda2Entity entity = new Lambda2Entity();
entity.setAge(i+10);
entity.setName("张三"+i+"号");
list.add(entity);
set.add(entity);
map.put(entity.getName(),entity);
}
对list集合遍历
System.out.println("用forEach遍历list集合");
list.forEach( (single) -> {
System.out.println(single.getName() + " " + single.getAge());
}
);
对set集合遍历
System.out.println("用forEach遍历set集合");
set.forEach((single) -> {
System.out.println(single.getName() + " " + single.getAge());
}
);
对map集合遍历
System.out.println("用forEach遍历map集合");
map.forEach((key,value) -> {
System.out.println(key + " " + value.getAge());
}
);
控制台输出结果:
通过lambda表达式对结合的操作,是通过forEach来完成的,如果是list或set这两种集合,那么lambda表达式中只有一个参数,表示集合中的一个值。但是map可以有两个,因为map本身就是通过键值对存储的,一个key,一个value。