MySQL Java JavaScript PHP Python HTML-CSS C-sharp

Metodele skip și limit

Metoda skip(long n) este utilizată pentru a omite primii n elemente dintr-un flux. Această metodă returnează un nou flux, din care primele n elemente sunt omise.

Metoda limit(long n) este folosită pentru a selecta primele n elemente dintr-un flux. Aceasta returnează un flux modificat care conține maximum n elemente.

Adesea, aceste două metode sunt utilizate împreună pentru a crea efectul de navigare pe pagini. Să vedem cum pot fi aplicate:

Stream<String> phoneStream = Stream.of("iPhone 6 S", "Lumia 950", "Samsung Galaxy S 6", "LG G 4", "Nexus 7");

phoneStream.skip(1)
   .limit(2)
   .forEach(s -> System.out.println(s));

În acest exemplu, metoda skip omite primul element, iar metoda limit selectează următoarele două elemente. Rezultatul afișat în consolă va fi:

Lumia 950 
Samsung Galaxy S 6

Este posibil ca metoda skip să primească un parametru mai mare decât numărul de elemente din flux. În acest caz, toate elementele vor fi omise, iar fluxul rezultat va conține 0 elemente.

Dacă metoda limit primește un număr mai mare decât numărul de elemente din flux, vor fi selectate toate elementele din flux.

Acum să vedem cum se poate crea navigarea pe pagini:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.*;
import java.util.Scanner;

public class Program {

   public static void main(String[] args) {

       List<String> phones = new ArrayList<String>();
       phones.addAll(Arrays.asList(new String[]
               {"iPhone 6 S", "Lumia 950", "Huawei Nexus 6P",
               "Samsung Galaxy S 6", "LG G 4", "Xiaomi MI 5",
               "ASUS Zenfone 2", "Sony Xperia Z5", "Meizu Pro 5",
               "Lenovo S 850"}));

       int pageSize = 3; // numărul de elemente pe pagină
       Scanner scanner = new Scanner(System.in);
       while(true){

           System.out.println("Introduceți numărul paginii: ");
           int page = scanner.nextInt();

           if(page < 1) break; // dacă numărul este mai mic decât 1, ieșim din ciclu

           phones.stream().skip((page-1) * pageSize)
               .limit(pageSize)
               .forEach(s -> System.out.println(s));
       }
   }
}

În acest caz, avem un set de 10 elemente. Cu ajutorul variabilei pageSize stabilim numărul de elemente pe pagină - 3. Astfel, vom avea 4 pagini (pe ultima pagină va fi doar un element).

În bucla infinită, obținem numărul paginii și selectăm doar acele elemente care se află pe pagina specificată.

Să introducem câteva numere de pagini, de exemplu, 4 și 2:

Introduceți numărul paginii:
4
Lenovo S 850
Introduceți numărul paginii:
2
Samsung Galaxy S 6
LG G 4
Xiaomi MI 5
← Lecția anterioară Lecția următoare →