lambda表达式对集合的遍历

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。

posted @ 2020-08-14 18:12  林就远  阅读(3020)  评论(0编辑  收藏  举报