Java8?????е?Lambda????
???????????? ???????[ 2016/5/24 11:24:26 ] ??????????????????? JAVA
??????????????Java 8 Explained: Applying Lambdas to Java Collections????
????Lambdas??????Java 8????????Java??????????????á??????????????????????????????????????????????????н???????lambda????????????????default methods?????defender methods??????????????????????????????Java??????????????????????bulk operation????
????????????
??????????????????????????????“??Java????????????????????????????????????????lambda????????”????????????????lambda?????Java 8????????????????????????????μ???ü??????????????????????????????????????????У?????lambda????????????????????????????
????????????????
??????????Java????????????????????????????????????????????????for????while?????????????????????????????LambdaJ?????????
????List persons = asList(new Person("Joe")?? new Person("Jim")?? new Person("John"));
????forEach(persons).setLastName("Doe");
???????????????????????????????????last name????????????????person??????????????????????????????????е???????????????Java 8???????????????
????persons.forEach(p -> p.setLastName("Doe"))
????????????????????????????????????е??????????????СС?????????????????????????????仯?????????????????????????????μ?????stream??API??
??????API
?????μ?java.util.stream?????????JDK?????????????????Java 8???filter/map/reduce??????????
??????API????????????????????д??л?????е??????
????List persons = … // sequential version
????Stream stream = persons.stream(); //parallel version
????Stream parallelStream = persons.parallelStream();
????java.util.stream.Stream????????????????????????????????????????????????????????????????????????
????Filter
???????????????????????????????????????????????????Stream??????????filter???????????????????????Predicate??????????????????????lambda??????
????List persons = …
????Stream personsOver18 = persons.stream().filter(p -> p.getAge() > 18);
????Map
?????????????????????Щ????????????????????Map??????????????????Function??????Function<T??R>?????T??R???????????????н??????????????β???????????????????????????????????????????????????
????Stream students = persons.stream()
????.filter(p -> p.getAge() > 18)
????.map(new Function() {
????@Override
????public Student apply(Person person) {
????return new Student(person);
????}
????});
???????????????????????????lambda??????д????
????Stream map = persons.stream()
????.filter(p -> p.getAge() > 18)
????.map(person -> new Student(person));
????Lambda??????????map????????????????????????????????????????д????????
????Stream map = persons.stream()
????.filter(p -> p.getAge() > 18)
????.map(Student::new);
????Collect
????“??”????????????????????????????????????????????????????????????????????????????????????Stream API????????“??”???????collect()?????????е??????????????????????????????
????List students = persons.stream()
????.filter(p -> p.getAge() > 18)
????.map(Student::new)
????.collect(new Collector>() { … });
?????????????????????????????????Collector????????????Collectors??????
????List students = persons.stream()
????.filter(p -> p.getAge() > 18)
????.map(Student::new)
????.collect(Collectors.toList());
?????????????????????????????????????????
????List students = persons.stream()
????.filter(p -> p.getAge() > 18)
????.map(Student::new)
????.collect(Collectors.toCollection(ArrayList::new));
???????к????
???????????μ?Stream API??????????????????????????ν???л?????е??????????????????е??????????????????????е?????????????е??
????List students = persons.stream()
????.parallel()
????.filter(p -> p.getAge() > 18) // filtering will be performed concurrently
????.sequential()
????.map(Student::new)
????.collect(Collectors.toCollection(ArrayList::new));
???????????????????????????????в????????????????????????????????????????????
???????
??????????????????μ?Stream API??lambda??????Java 8?????????μ?????????????????????????к????????????????????????????????????????????
??????
![](/images/ad-banner/ad-banner.png)
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11