當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。