当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Stream skip()用法及代码示例


先决条件: Java流
skip(long N)是java.util.stream.Stream对象的方法。此方法以一个长(N)作为参数,并在删除前N个元素后返回流。如果N的值很大,则在有序并行管道上skip()可能会非常昂贵,因为skip(N)被约束为跳过遇到顺序中的前N个元素,而不仅仅是任何n个元素。
注意:如果流包含少于N个元素,则返回空流。

用法:

Stream<T> skip(long N)

Where N is the number of elements to be skipped
and this function returns new stream as output.

异常:如果N的值为负,则该函数将引发IllegalArgumentException。


示例1:实现跳过函数。

// Java code for skip() function 
import java.util.*; 
  
class GFG { 
  
    // Driver code 
    public static void main(String[] args) 
    { 
  
        // Creating a list of integers 
        List<Integer> list = new ArrayList<Integer>(); 
  
        // adding elements in the list 
        list.add(-2); 
        list.add(0); 
        list.add(2); 
        list.add(4); 
        list.add(6); 
        list.add(8); 
        list.add(10); 
        list.add(12); 
        list.add(14); 
        list.add(16); 
  
        // setting the value of N as 4 
        int limit = 4; 
        int count = 0; 
        Iterator<Integer> it = list.iterator(); 
  
        // Iterating through the list of integers 
        while (it.hasNext()) { 
            it.next(); 
            count++; 
  
            // Check if first four i.e, (equal to N) 
            // integers are iterated. 
            if (count <= limit) { 
  
                // If yes then remove first N elements. 
                it.remove(); 
            } 
        } 
  
        System.out.print("New stream is : "); 
  
        // Displaying new stream 
        for (Integer number : list) { 
            System.out.print(number + " "); 
        } 
    } 
}

输出:

New stream is : 6 8 10 12 14 16 

应用:

// Java code for skip() function 
import java.util.stream.Stream; 
import java.util.ArrayList; 
import java.util.List; 
 class gfg{ 
       
     // Function to skip the elements of stream upto given range, i.e, 3 
     public static Stream<String> skip_func(Stream<String> ss, int range){ 
         return ss.skip(range); 
     } 
       
     // Driver code 
     public static void main(String[] args){ 
           
         // list to save stream of strings 
         List<String> arr = new ArrayList<>(); 
           
         arr.add("geeks"); 
         arr.add("for"); 
         arr.add("geeks"); 
         arr.add("computer"); 
         arr.add("science"); 
          
         Stream<String> str = arr.stream(); 
           
         // calling function to skip the elements to range 3 
         Stream<String> sk = skip_func(str,3); 
         sk.forEach(System.out::println); 
     } 
 }

输出:

computer
science

之间的区别limit()和skip():

  1. limit()方法返回减少的前N个元素流,但skip()方法在跳过前N个元素后返回其余元素流。
  2. limit()是一种短路的有状态中间操作,即,当使用无限输入进行处理时,它可能会生成有限的流,而无需处理整个输入,但是skip()是有状态的中间操作,即,可能需要先处理整个输入产生结果。


相关用法


注:本文由纯净天空筛选整理自Sahil_Bansall大神的英文原创作品 Stream skip() method in Java with examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。