Requisito previo: flujos en Java
El salto (N largo) es un método del objeto java.util.stream.Stream . Este método toma un largo (N) como argumento y devuelve un flujo después de eliminar los primeros N elementos. skip() puede ser bastante costoso en canalizaciones paralelas ordenadas, si el valor de N es grande, porque skip(N) está restringido a omitir los primeros N elementos en el orden de encuentro y no cualquier n elemento.
Nota: si una secuencia contiene menos de N elementos, se devuelve una secuencia vacía.
Sintaxis:
Stream<T> skip(long N) Where N is the number of elements to be skipped and this function returns new stream as output.
Excepción: si el valor de N es negativo, la función lanza IllegalArgumentException .
Ejemplo 1: Implementación de la función de salto.
// 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 + " "); } } }
Producción :
New stream is : 6 8 10 12 14 16
Solicitud :
// 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); } }
Producción :
computer science
Diferencia entre limit() y skip() :
- El método limit() devuelve un flujo reducido de los primeros N elementos, pero el método skip() devuelve un flujo de elementos restantes después de omitir los primeros N elementos.
- limit() es una operación intermedia con estado de cortocircuito, es decir, cuando se procesa con una entrada infinita, puede producir un flujo finito como resultado sin procesar toda la entrada, pero skip() es una operación intermedia con estado, es decir, puede necesitar procesar toda la entrada antes de producir un resultado.
Publicación traducida automáticamente
Artículo escrito por Sahil_Bansall y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA