Java Stram之“筛选与切片”的简介说明

Java-教程王 Java教程 发布时间:2021-08-27 09:47:52 阅读数:14544 1
当我们获取一个Stream流之后,我们可以对其进行筛选与切片,那么筛选与切片有哪些方法呢?下文将一一道来,如下所示:
  1. filter(Predicate p): 接收 Lambda , 从流中排除某些元素
  2. distinct(): 筛选,通过流所生成元素的 hashCode() 和 equals() 去除重复元素
  3. limit(long maxSize): 截断流,使其元素不超过给定数量
  4. skip(long n) :跳过元素,返回一个扔掉了前 n 个元素的流。若流中元素不足 n 个,则返回一个空流同limit(n)互补

filter(Predicate p)

例:
  过滤类中 年龄大于10岁的数据

例:user集合
list<User> users = Arrays.asList(
            new User(101, "user-1", 8),
            new User(102, "user-2", 18),
            new User(103, "user-3", 11) 
    );
 @Test
 public void testRun() {
   users.stream()
        .filter((e) -> e.getAge() > 10)
        .forEach(System.out::println);
 }
注意事项:
   System.out::println是Java8中方向引用的写法
filter 方法 的作用就是筛选数据

distinct()去重方法

distinct 去重方法,可对对象数据流进行去重操作,如下例所示:
package com.java265;
import java.util.Arrays;
import java.util.List;
public class testMain {
	public static void main(String[] args) {
		List<Integer> t = Arrays.asList(11, 22, 11, 22, 34, 6, 8);
		t.stream().distinct().forEach(System.out::println);
	}

}
-------运行以上代码,将输出以下信息-------
11
22
34
6
8 

limit关键字的功能说明

limit(long maxSize)
用于返回集合前指定条数的数据
例:
package com.java265;
import java.util.Arrays;
import java.util.List;
public class testMain {
	/*
	 * java265.com
	 * 返回符合条件的前2条数据
	 * */
	public static void main(String[] args) {
        List<Integer> t = Arrays.asList(11, 22, 11, 22, 34, 6, 8);
		t.stream().distinct().limit(2).forEach(System.out::println);
	}
}
-------运行以上代码,将输出以下信息--------
11
22
Java教程之Stream limit示例分享

skip关键字的功能说明

skip(long n):跳过前多少个数据 例:
package com.java265;
import java.util.Arrays;
import java.util.List;
public class testMain {
	/*
	 * java265.com 跳过前4条数据
	 */
	public static void main(String[] args) {
		List<Integer> t = Arrays.asList(11, 22, 11, 22, 34, 6, 8);
		t.stream().skip(4).forEach(System.out::println);
	}
}
------运行以上代码,将输出以下信息----
34
6
8
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaCourse/202108/873.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者