java8 Stream

Java8 Stream常用方法

1:过滤

     list.stream().filter(p-> p.getAge() > 20).collect(Collectors.toList());

2:去重
使用distinct去重时对象需要重写的hashCode()和equals(),先比较hashCode

    list.stream().distinct().collect(Collectors.toList());
    //TreeSet 去重
	list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Person::getSex))), ArrayList::new));

3:排序
sorted() 默认使用自然序排序, 其中的元素必须实现Comparable(可自写) 接口

	list.stream().sorted(Comparator.comparing(Person::getAge)).collect(Collectors.toList());

4:提取对象 List 中的某一字段生成新的 List

	list.stream().map(Person::getName).collect(Collectors.toList());

5: 根据的某一字段生成 Map
第三个参数指key值重复时,保留p1旧值或p2新值

	//Function.identity() 可以用p -> p;
	list.stream().collect(Collectors.toMap(Person::getName, Function.identity(), (p1, p2) -> p2));

6:分组
可以多级分组

	Map<String, List<Person>> listMap = list.stream().collect(Collectors.groupingBy(Person::getName));

7:分区

Map<Boolean, List<Person>> booleanListMap = list.stream()
                .collect(Collectors.partitioningBy(p -> p.getAge() > 20));

java8 函数式接口 参数详解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java 8引入了Stream API,它是一种处理集合数据的新方式。Stream API提供了一种流式操作的方式,可以对集合进行过滤、映射、排序、聚合等操作,使得代码更加简洁、易读和高效。 Stream是一个来自数据源的元素队列并支持聚合操作。它可以是集合、数组、I/O channel、产生器等。Stream操作可以顺序执行,也可以并行执行。 Java 8 Stream API的特点包括: 1. 延迟执行:Stream操作通常是延迟执行的,只有在终止操作时才会触发实际的计算。 2. 内部迭代:Stream API使用内部迭代的方式,不需要显式地编写循环,使得代码更加简洁。 3. 函数式编程:Stream API支持函数式编程风格,可以通过Lambda表达式来定义操作。 4. 并行处理:Stream API提供了并行处理的能力,可以充分利用多核处理器的优势,提高处理速度。 使用Stream API可以通过一系列的中间操作和终止操作来对集合进行处理。中间操作包括过滤、映射、排序等操作,终止操作包括聚合、收集、遍历等操作。 下面是一些常用的Stream操作方法: 1. filter(Predicate<T> predicate):根据指定条件过滤元素。 2. map(Function<T, R> mapper):将元素进行映射转换。 3. sorted(Comparator<T> comparator):对元素进行排序。 4. distinct():去除重复的元素。 5. limit(long maxSize):限制元素的数量。 6. skip(long n):跳过指定数量的元素。 7. forEach(Consumer<T> action):对每个元素执行指定操作。 8. collect(Collector<T, A, R> collector):将元素收集到集合中。 9. reduce(BinaryOperator<T> accumulator):对元素进行归约操作。 10. parallel():启用并行处理。 以上只是Stream API的一部分常用操作,还有更多的操作方法可以根据具体需求使用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值