核心代码一
package stream;
import java.util.function.BinaryOperator;
import java.util.stream.Stream;
public class ReduceDemo {
public static void main(String[] args) {
Integer integer = Stream.of(1, 2, 3, 4, 5, 6, 7, 8).reduce((item1, item2) -> item1 + item2).get();
System.out.println(integer);
Integer integer1 = Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9).reduce(new BinaryOperator<Integer>() {
@Override
public Integer apply(Integer integer, Integer integer2) {
return integer + integer2;
}
}).get();
System.out.println(integer1);
int iii = Stream.of(1, 2, 3, 4, 5).reduce(100, ((item1, item2) -> item1 + item2));
System.out.println(iii);
Integer maxValue = Stream.of(2, 3, 4, 5, 6, 7, 10, 80, 73, 43).reduce((item1, item2) -> item1 > item2 ? item1 : item2).get();
System.out.println(maxValue);
}
}
核心代码二
package stream;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
public class StreamDemo1 {
public static void main(String[] args) {
List<String> strList = Arrays.asList("java", "c++", "python", "php");
List<String> resultList = strList.stream().map(obj -> "在家里学习了" + obj).collect(Collectors.toList());
System.out.println(resultList);
System.out.println("自然排序");
List<String> resultList2 = strList.parallelStream().sorted().collect(Collectors.toList());
System.out.println("排序后的list:" + resultList2);
System.out.println("根据长度排序");
List<String> resultList3 = strList.stream().sorted(Comparator.comparing(obj -> obj.length())).collect(Collectors.toList());
System.out.println(resultList3);
System.out.println("多次排序");
List<String> resultList4 = strList.stream().sorted(Comparator.comparing(obj -> obj.length(), Comparator.reverseOrder())).collect(Collectors.toList());
System.out.println(resultList4);
List<String> resultList5 = strList.stream().sorted(Comparator.comparing(String::length).reversed()).limit(2).collect(Collectors.toList());
System.out.println(resultList5);
}
}
核心代码三
package stream;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;
public class StreamDemo2 {
public static void main(String[] args) {
List<Student> strList = Arrays.asList(new Student(10),new Student(12),new Student(15),new Student(18),new Student(1),new Student(39),new Student(10));
System.out.println("选出年级最大的同学");
Optional<Student> max = strList.stream().max(Comparator.comparingInt(Student::getAge));
System.out.println(max.get().getAge());
System.out.println("最小值");
Optional<Student> min = strList.stream().min(Comparator.comparingInt(Student::getAge));
System.out.println(min.get().getAge());
}
}
class Student{
int age;
public Student(int age){
this.age = age;
}
public int getAge(){
return this.age;
}
}