package test;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Test11 {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9,10,8);
//规约操作,按照一定的规律计算
Integer count2 = list.stream()
.reduce(0, (x, y) -> x + y);//0是基数,后面是具体操作规律
System.out.println(count2);//输出63
System.out.println();
//筛选,过滤,遍历
list.stream().filter(x -> x>5).limit(3).forEach(System.out::println);//输出6、7、8
System.out.println();
//skip(n) 该流n个元素之后的数据,如果该流元素个数没有n个元素返回null
list.stream().filter(x -> x>5).skip(1).forEach(System.out::println);//输出7、8、9、10、8
System.out.println();
//去重
list.stream().distinct().forEach(System.out::println);
System.out.println();
List<Person> personList = Arrays.asList(new Person("张三","18"),new Person("李四","19"),new Person("王五","15"),new Person("刘六","18"));
//通过map产生新的流
personList.stream().map(person -> person.getName()).forEach(System.out::println);//输出张三李四王五
System.out.println();
//排序,可以自然排序也可以自定义排序
personList.stream().sorted((person1,person2) -> {
if(person1.getAge().equals(person2.getAge())){
return person1.getName().compareTo(person2.getName());
}else{
return person1.getAge().compareTo(person2.getAge());
}
}).forEach(System.out::println);
System.out.println();
//Collect-将流转换为其他形式,接收一个Collection接口的实现,用于给Stream中元素做汇总的方法
personList.stream().map(Person :: getAge).collect(Collectors.toList()).forEach(System.out::println);
}
}
java1.8Stream
最新推荐文章于 2024-05-21 11:43:59 发布