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。