Java8特性之用Stream流代替For循環(huán)操作詳解
更新時(shí)間:2021年09月30日 15:38:26 作者:四季人06
這篇文章主要介紹了Stream流代替For循環(huán)進(jìn)行輸出,這樣可以使代碼更簡(jiǎn)潔,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
準(zhǔn)備一個(gè)實(shí)體類
public class Student { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
準(zhǔn)備一個(gè)List集合
List<Student> list=new ArrayList<>(); Student s1=new Student(); s1.setName("張三"); s1.setAge(18); list.add(s1); Student s2=new Student(); s2.setName("李四"); s2.setAge(22); list.add(s2);
傳統(tǒng)的for循環(huán)
//for循環(huán) for (int i=0;i< list.size();i++){ System.out.println(list.get(i)); } //增強(qiáng)for循環(huán) for(Student student: list){ System.out.println(student); } //迭代器 Iterator<Student> iterator = list.iterator(); while (iterator.hasNext()){ System.out.println(iterator.next()); }
使用Stream流
//遍歷List集合 list.stream().forEach(str->{ System.out.println(str.getName()+":"+str.getAge()); }); //過(guò)濾 把名字為李四的過(guò)濾掉 list.stream().filter(str -> !"李四".equals(str.getName())).forEach(str -> { System.out.println(str.getName()+":"+str.getAge()); }); //操作對(duì)象,拼接 //String collect=list.stream().map(student->student.getName()).collect(Collectors.joining(",","前","后")); // System.out.println(collect);
先聲明篩選條件,在遍歷
//聲明一個(gè)條件 學(xué)生年齡大于18 Predicate<Student> pred = (student) -> student.getAge() > 18; //調(diào)用方法 selectStudent(list,pred);
private static void selectStudent(List<Student> list, Predicate<Student> pred) { System.out.println("選出年齡大于18的學(xué)生:"); list.forEach(student -> { if (pred.test(student)){ System.out.println(student.getName()+":"+student.getAge()); } }); }
Stream操作 嵌套循環(huán)(2層)
//java 8 stream操作 嵌套循環(huán) List<Student> list = list1.stream().filter(student1 -> list2.stream() .anyMatch(studnet2 -> student1.getName().equals(studnet2.getName()) )) .collect(Collectors.toList()); System.out.println("stream操作篩選后的結(jié)果" + list.get(0).getName());
但是不建議foreach套foreach
到此這篇關(guān)于Java8特性之用Stream流代替For循環(huán)操作詳解的文章就介紹到這了,更多相關(guān)Java Stream流代替For循環(huán)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java實(shí)現(xiàn)短信驗(yàn)證碼5分鐘有效時(shí)間
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)短信驗(yàn)證碼5分鐘有效時(shí)間,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07Spring基于xml實(shí)現(xiàn)自動(dòng)裝配流程詳解
自動(dòng)裝配是使用spring滿足bean依賴的一種方法,spring會(huì)在應(yīng)用上下文中為某個(gè)bean尋找其依賴的bean,Spring中bean有三種裝配機(jī)制,分別是:在xml中顯式配置、在java中顯式配置、隱式的bean發(fā)現(xiàn)機(jī)制和自動(dòng)裝配2023-01-01