一、创建Stream 从一个数据源,如集合、数组中获取流。 二、中间操作 一个操作的中间链,对数据源的数据进行操作。 三、终止操作 一个终止操作,执行中间操作链,并产生结果。 要注意的是,对流的操作完成后需要进行关闭操作(或者用JAVA7的try-with-resources)。 public static void main(String[] args) { // 1)...
int sum = list.stream().filter(s -> "男".equals(s.getGender())).mapToInt(Student::getAge).sum(); System.out.println("4、求性别为男的学生总岁数:"); System.out.println(sum); // 按性别进行分组统计人数 Map<String, Integer> map2 = list.stream().collect(Collectors.groupingBy(Student...
final Optional<Person> maxAge = personList.stream().max((p1, p2) -> p1.getAge().compareTo(p2.getAge())); System.out.println("年龄最大的人信息:" + maxAge.get()); final Optional<Person> minAge = personList.stream().min((p1, p2) -> p1.getAge().compareTo(p2.getAge()));...
publicvoidgroupByAge(List<Demo> demos) { Map<String, List<Demo>> collect = demos.stream().collect(Collectors.groupingBy(Demo::getAge)); collect.forEach((key,value)->{ value.forEach(demo ->{ System.out.println(key+":"+demo.getSex()); }); }); } } filter 1 2 3 4 5 6 7 8 ...
1.转换为流 - stream() stream()方法将List集合转换为一个流,使我们能够使用流的各种方法对集合数据进行操作。 示例: List<String>names=Arrays.asList("Alice","Bob","Charlie");Stream<String>stream=names.stream(); 2.过滤元素 - filter()
以Stream流方式实现需求 publicvoidnewCartHandle(){//多线程安全,防止多线程计数出现冲突,用于计算金额而声明的AtomicReference<Double>money=newAtomicReference<>(0.0);//CartService.getCartSkuList()可以理解为获取数组对象随后进入流操作List<String>resultSkuNameList=CartService.getCartSkuList().stream()/*** 1...
import java.util.ArrayList;import java.util.Comparator;import java.util.List;import java.util.Map;import java.util.stream.Collectors;publicclassTest{/** * 数据打印 * @param demos * @param list */publicList<Demo>printData(List<Demo>demos,List<Student>list){demos=list.stream().map(student->...
limit(): 该方法用于截取前几个元素,返回一个新的 Stream 对象。List<Integer> numbers = Arrays.as...
Stream常用api 中间操作 distinct skip与limit 代码语言:javascript 复制 List<String>list=getList();int pageSizse=10;int total=list.size()/pageSizse;if(list.size()%pageSizse!=0){total+=1;}for(int i=0;i<total;i++){System.out.println(String.format("第%d页",i+1));list.stream().skip...