开发记录:关于Java Stream,涉及遍历、分组以及list转map、list字段提取 简介和特点 Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。 这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选
Stream<Integer> integerStream = Stream.of(1, 2, 3, 4, 5, 6); integerStream.forEach(System.out::println); Stream<Integer> stream2 = Stream.iterate(0, (x) -> x + 3).limit(4); stream2.forEach(System.out::println); Stream<Double> stream3 = Stream.generate(Math::random).limit(3...
//方法1:先对年龄进行升序,结果进行反转userList =userList.stream().sorted(Comparator.comparing(User::getAge).reversed()).collect(Collectors.toList());//方法2:直接对年龄进行降序userList =userList.stream().sorted(Comparator.comparing(User::getAge, Comparator.reverseOrder())).collect(Collectors.toL...
Stream流可以通过集合、数组来创建。 List<String> list = Arrays.asList("a", "b", "c"); Stream<String> stream = list.stream(); 1. 2. 三、使用 3.1、遍历、匹配 forEach List<Integer> list = Arrays.asList(10, 5, 8, 20, 32, 6); // 遍历输入每一个元素 list.stream().forEach(ite...
() .collect(Collectors.groupingBy(InputForm::getCreateUserName,Collectors.summarizingInt(InputForm::getStatus))); //对名字去重 Set<String>collect1=inputForms.stream().distinct().map(InputForm::getCreateUserName).collect(Collectors.toSet()); //遍历名字,从map中取出对应用户的status最大值,最小值,...
3.1 遍历/匹配(foreach/find/match) Stream也是支持类似集合的遍历和匹配元素的,只是Stream中的元素是以Optional类型存在的。Stream的遍历、匹配非常简单。 图片 // import已省略,请自行添加,后面代码亦是 public class StreamTest { public static void main(String[] args) { ...
cityList=cityList.stream().map(city->city.split(";")).flatMap(Arrays::stream).collect(Collectors.toList());//遍历城市列表cityList.forEach(System.out::println);} 执行结果: 1.5 distinct() 使用distinct() 方法可以去除重复的数据。 【示例】获取部门列表,并去除重复数据。
接下来,我们使用stream()方法创建一个流,并使用collect()方法和Collectors.groupingBy()方法按age属性分组。我们还使用Collectors.maxBy()方法按salary属性收集最大元素。 最后,我们遍历分组后的结果,并打印每个年龄组中薪水最高的Person对象。 运行这个程序,你将看到以下输出: ...
Stream 作为 Java 8 的一大亮点,好比一个高级的迭代器(Iterator),单向,不可往复,数据只能遍历一次,遍历过一次后即用尽了,就好比流水从面前流过,一去不复返。 Java 8 中的 Streams API 详解 我们可以利用stream对数据进行分组。示例如下: List<String>items=Arrays.asList("apple","apple","banana","apple",...