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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM