stream常用方法
public class test { public static void main(String[] args) { List<KeyValue> keyValueList = new LinkedList<>(); keyValueList.add(newKeyValue("1", "1")); keyValueList.add(newKeyValue("2", "1")); keyValueList.add(newKeyValue("3", "33333")); keyValueList.add(newKeyValue("4", "56")); keyValueList.add(newKeyValue("5", "55")); keyValueList.add(newKeyValue("5", "55")); System.out.println(keyValueList); //分组 Map<String, List<KeyValue>> map = keyValueList.stream().collect(groupingBy(KeyValue::getValue)); System.out.println(map); //还有sum() max() min() average()看名字就是什么 //过滤 List<KeyValue> collect1 = keyValueList.stream() .filter(keyValue -> "1".equals(keyValue.getValue())).collect(toList()); System.out.println(collect1); //去除重复元素 List<KeyValue> collect2 = keyValueList.stream().distinct().collect(toList()); System.out.println(collect2); //排序 升序 List<KeyValue> collect3 = keyValueList.stream() .sorted((p1, p2) -> Integer.valueOf(p1.getValue()) - Integer.valueOf(p2.getValue())).collect(toList()); System.out.println(collect3); //前几 List<KeyValue> collect4 = keyValueList.stream().limit(2).collect(toList()); //去除前几 List<KeyValue> collect = keyValueList.stream().skip(2).collect(toList()); //将流中的每一个元素 T 映射为 R(类似类型转换) List<String> strings = keyValueList.stream().map(KeyValue::getValue).collect(toList()); System.out.println(strings); //打印 keyValueList.stream().forEach(System.out::println); } public static KeyValue newKeyValue(String key, String value) { KeyValue keyValue = new KeyValue(); keyValue.setKey(key); keyValue.setValue(value); return keyValue; } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
stream().filter()的用法
stream.filter一般适用于list集合,主要作用就是模拟sql查询,从集合中查询想要的数据。filter里面的参数user是指集合里面的每一项 配合collect 使用
过滤空指针异常
List<Stu> filtered = list.stream().filter(s -> s.getAge() != null && s.getAge()==19).collect(Collectors.<Stu>toList());
- 1
- 2
//过滤出符合条件的数据
List<Apple> filterList = appleList.stream().filter(a -> a.getName().equals("香蕉")).collect(Collectors.toList());
System.err.println("filterList:"+filterList);
[Apple{id=2, name='香蕉', money=2.89, num=30}]
- 1
- 2
- 3
- 4
- 5
return codeValuePairs.stream()
.filter(p -> !StringUtils.isBlank(p.getCode()))
.collect(Collectors.toMap(
p -> InputTypeId.parse(p.getCode()), CodeValuePair::getValue, (o1, o2) -> o1
));
- 1
- 2
- 3
- 4
- 5
Java8 Stream collect(Collectors.toMap()) 用法
Collectors.toMap 用法 在我们实际开发过程中经常使用到将List 转为Map的过程,在Java8 中Stream提供简便开发的方式,
三个重载的方法 两个参数
public static <T, K, U>
Collector<T, ?, Map<K,U>> toMap(Function<? super T, ? extends K> keyMapper,
Function<? super T, ? extends U> valueMapper) {
return new CollectorImpl<>(HashMap::new,
uniqKeysMapAccumulator(keyMapper, valueMapper),
uniqKeysMapMerger(),
CH_ID);
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
————————————————
版权声明:本文为CSDN博主「#卡车司机」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_42618152/article/details/118975208
本文使用 文章同步助手 同步
网友评论