先決條件: 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():
- limit()方法返回減少的前N個元素流,但skip()方法在跳過前N個元素後返回其餘元素流。
- limit()是一種短路的有狀態中間操作,即,當使用無限輸入進行處理時,它可能會生成有限的流,而無需處理整個輸入,但是skip()是有狀態的中間操作,即,可能需要先處理整個輸入產生結果。
相關用法
- Java ByteArrayInputStream skip()用法及代碼示例
- Java Scanner skip()用法及代碼示例
- Java Reader skip(long)用法及代碼示例
- Java PushbackReader skip(long)用法及代碼示例
- Java CharArrayReader skip(long)用法及代碼示例
- Java StringReader skip(long)用法及代碼示例
- Java Stream.max()用法及代碼示例
- Java Stream min()用法及代碼示例
- Java Stream count()用法及代碼示例
- Java Stream generate()用法及代碼示例
- Java BitSet stream()用法及代碼示例
- Java OptionalLong stream()用法及代碼示例
- Java Stream forEach()用法及代碼示例
- Java Stream forEachOrdered()用法及代碼示例
- Java OptionalDouble stream()用法及代碼示例
注:本文由純淨天空篩選整理自Sahil_Bansall大神的英文原創作品 Stream skip() method in Java with examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。