>  기사  >  Java  >  스트림 작업을 위해 Java에서 Stream의 제한 및 건너뛰기 기능을 사용하는 방법

스트림 작업을 위해 Java에서 Stream의 제한 및 건너뛰기 기능을 사용하는 방법

PHPz
PHPz원래의
2023-06-26 15:55:242944검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.