L'API Stream a été introduite dans Java 8, ce qui peut grandement simplifier le fonctionnement des collections. La classe Stream fournit de nombreuses méthodes fonctionnelles pour fonctionner sur les flux, notamment le filtrage, le mappage, la fusion, etc. Parmi elles, limit et skip sont deux fonctions utilisées pour limiter le nombre d'éléments dans les opérations de flux.
1. Fonction limite
La fonction limite est utilisée pour limiter le nombre d'éléments dans le flux. Elle accepte un paramètre de type long n, indiquant le nombre de limites. Après avoir appelé la fonction limit, un nouveau flux est renvoyé, qui ne contient que les n premiers éléments du flux d'origine. Par exemple :
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); list.stream().limit(3).forEach(System.out::print);
Le résultat de sortie du code ci-dessus est : 1 2 3. Dans cet exemple, nous convertissons une collection List en Stream via la méthode stream, puis utilisons la méthode limit pour limiter les éléments du flux, et enfin générons le résultat via la méthode forEach.
2. fonction skip
La fonction skip est utilisée pour ignorer des éléments dans le flux. Elle accepte un paramètre de type long n, indiquant le numéro à ignorer. Après avoir appelé la fonction skip, un nouveau flux est renvoyé, qui ignore les n premiers éléments du flux d'origine. Par exemple :
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); list.stream().skip(2).forEach(System.out::print);
Le résultat de sortie du code ci-dessus est : 3 4 5. Dans cet exemple, nous convertissons une collection List en Stream via la méthode stream, puis utilisons la méthode skip pour ignorer les deux premiers éléments, et enfin générons le résultat via la méthode forEach.
3. Utilisez les fonctions de limite et de saut pour implémenter la pagination
L'utilisation combinée des fonctions de limite et de saut peut facilement implémenter la fonction de pagination. Supposons que nous ayons une liste contenant N éléments et que nous souhaitions implémenter une fonction de pagination pour afficher M éléments sur chaque page. Nous pouvons l'implémenter de la manière suivante :
public class PaginationDemo { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); for (int i = 1; i <= 10; i++) { list.add(i); } int pageSize = 3; int pageNum = 1; int start = (pageNum - 1) * pageSize; int end = pageNum * pageSize; List<Integer> result = list.stream().skip(start).limit(end - start).collect(Collectors.toList()); System.out.println(result); } }
Dans le code ci-dessus, nous créons d'abord une liste contenant 10 éléments. Ensuite, nous définissons le numéro pageSize et le numéro de page pageNum affichés sur chaque page, et calculons le nombre d'éléments qui doivent être ignorés au début et le nombre d'éléments qui doivent être filtrés de fin à début. Enfin, nous utilisons les fonctions limit et skip pour filtrer les éléments requis pour le numéro de page spécifié de la liste et collecter les résultats dans la liste via la méthode collect.
Ce qui précède est l'application des fonctions de limitation et de saut. Elles peuvent nous aider à limiter et ignorer facilement des éléments dans le flux et à réaliser la fonction de pagination des opérations de flux.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!