Stream API는 Java 8에 도입되어 컬렉션 작업을 크게 단순화합니다. Stream 클래스는 필터링, 매핑, 병합 등을 포함하여 스트림 작업을 위한 다양한 기능적 메서드를 제공합니다. 그 중 Limit과 Skip은 스트림 작업에서 요소 수를 제한하는 데 사용되는 두 가지 기능입니다.
1. 제한 기능
제한 기능은 스트림의 요소 수를 제한하는 데 사용되며 제한 수를 나타내는 긴 유형 매개 변수 n을 허용합니다. 제한 함수를 호출한 후 원래 스트림의 처음 n개 요소만 포함하는 새 스트림이 반환됩니다. 예:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); list.stream().limit(3).forEach(System.out::print);
위 코드의 출력 결과는 1 2 3입니다. 이 예제에서는 stream 메소드를 통해 List 컬렉션을 Stream으로 변환한 다음, Limit 메소드를 사용하여 스트림의 요소를 제한하고 마지막으로 forEach 메소드를 통해 결과를 출력합니다.
2. 건너뛰기 기능
건너뛰기 함수는 건너뛸 수를 나타내는 긴 유형 매개변수 n을 허용합니다. 건너뛰기 함수를 호출한 후 원래 스트림의 처음 n개 요소를 건너뛰는 새 스트림이 반환됩니다. 예:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); list.stream().skip(2).forEach(System.out::print);
위 코드의 출력 결과는 3 4 5입니다. 이 예제에서는 stream 메소드를 통해 List 컬렉션을 Stream으로 변환한 다음, Skip 메소드를 사용하여 처음 두 요소를 건너뛰고 마지막으로 forEach 메소드를 통해 결과를 출력합니다.
3. 리미트와 스킵 기능을 활용한 페이징 구현
리미트와 스킵 기능을 조합해 페이징 기능을 쉽게 구현해보세요. N개의 요소를 포함하는 목록이 있고 각 페이지에 M개의 요소를 표시하는 페이징 기능을 구현하려고 한다고 가정합니다. 다음과 같은 방법으로 구현할 수 있습니다.
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); } }
위 코드에서는 먼저 10개의 요소가 포함된 목록을 만듭니다. 그런 다음 각 페이지에 표시되는 pageSize 수와 pageNum 수를 정의하고 start부터 건너뛰어야 하는 요소 수와 end-start를 필터링해야 하는 요소 수를 계산합니다. 마지막으로 제한 및 건너뛰기 기능을 사용하여 지정된 페이지 번호에 필요한 요소를 목록에서 필터링하고 수집 메서드를 통해 결과를 목록에 수집합니다.
위는 스트림의 요소를 쉽게 제한하고 건너뛰고 스트림 작업의 페이징 기능을 실현하는 데 도움이 되는 제한 및 건너뛰기 기능을 적용한 것입니다.
위 내용은 스트림 작업을 위해 Java에서 Stream의 제한 및 건너뛰기 기능을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!