stream() .filter(cat -> { System.out.println("filter: " + cat); return cat.getAge() > 1; }) .map(cat-> { System.out.println("map:" + cat); return cat.getName(); }) // 只加了这一行 .limit(1) .collect(Collectors.toList()); ...
limit():返回此流中的元素组成的流,截取前指定参数个数的数据 skip():跳过指定参数个数的数据,返回此流中剩余数据组成的流 concat(Stream a,Stream b):合并a、b两个流使之成为一个流 distinct():返回该流的不同元素组成的流(能去重) sorted():返回由此流的元素组成的流,根据自然顺序排序 sorted(Comparator ...
流Stream分为有限流和无限流,前面的例子我们都是使用的有限流,与Java集合类不同,流是可以无限的。对于无限流,skip()和limit()表现出了极大的差异,先上代码: Stream.iterate(1, i -> i + 1) .filter(num -> (num & (num - 1)) == 0) .limit(10) .forEach(System.out::println); System.out.pr...
List<Student> list = studentList.stream().filter(s -> s.getAge()>20).limit(1).collect(Collectors.toList()); 1.3、skip skip,跳过元素,返回一个跳过前n个元素的集合 //查询年龄大于20的数据,前一个不要 List<Student>list=studentList.stream() .filter(s->s.getAge()>20) .skip(1) .collec...
Stream的的中间操作(intermediate)和最终操作(terminal)都包含哪些方法可以从类结构中看到: 上面截图基本包含了Strram的所有方法。 中间操作(intermediate)主要有以下方法(此类型的方法返回的都是Stream对象): map (mapToInt, flatMap 等)、 filter、 distinct、 sorted、 peek、 limit、 skip、 parallel、 sequential...
IntStream.range(0, 10) .forEach(System.out::println);输出的结果是 0123456789 new Random().ints()获取一系列的随机值,这个接口出来的数据是连续不断的,所以需要用limit来限制一下。new Random().ints().limit(10).forEach(System.out::println);Supplier Supplier<String> stringSupplier=String::n...
limit使用:截断前N条记录。有状态操作 /*** limit使用:截断前N条记录。有状态操作*/@TestpublicvoidlimitTest(){list.stream().sorted(Comparator.comparing(Sku::getTotalPrice)).skip(2*3)// limit.limit(3).forEach(item->System.out.println(JSON.toJSONString(item,true)));} ...
Java8-Stream流(中间操作)limit&skip limit: 限制,截取流中指定数量的元素 skip: 跳过,跳过流中的指定数量的元素 packageStream; importlombok.*; importjava.util.Objects; /** * @Author yqq * @Date 2021/10/17 16:55 * @Version 1.0 */
3 limit()方法 对于limit()方法,它是用于限制流中元素的个数,即取前n个元素,返回新的流,如图所示: 代码如下: List<Integer> result = Stream.of(1, 2, 3, 4, 5, 6) .limit(4) .collect(Collectors.toList()); List<Integer> expected = asList(1, 2, 3, 4); ...
filter、sorted、distinct、limit 这几个都是常用的Stream的中间操作方法,具体的方法的含义在上面的表格里面有说明。具体使用的时候,可以根据需要选择一个或者多个进行组合使用,或者同时使用多个相同方法的组合:public void testGetTargetUsers() { List<String> ids = Arrays.asList("205","10","308","49","...