Lấy phần tử cuối cùng trong Stream API

Java Stream API là tính năng chính của phiên bản Java 8. Các stream đại diện cho các chuỗi các đối tượng và cung cấp một API phong phú để xử lý trên các đối tượng mà nó đang nắm giữ.

Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu cách để lấy ra phần tử cuối cùng trong stream. Tuy nhiên lưu ý rằng chúng ta không thể lấy phần tử cuối cùng trong một stream vô hạn.

Sử dụng Stream#reduce

Stream#reduce là một cách đơn giản giúp giảm tất cả các phần tử trong Stream còn duy nhất một phần tử. Hãy nhớ rằng phương pháp này sẽ chỉ trả về kết quả xác định cho các Luồng tuần tự.

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        List<String> valueList = new ArrayList<>();
        valueList.add("Joe");
        valueList.add("John");
        valueList.add("Sean");

        Stream<String> stream = valueList.stream();
        String last = stream.reduce((first, second) -> second)
                .orElse(null);

        System.out.println(last);
    }
}

Output: Sean

Stream#skip

Một cách khác để lấy được phần tử cuối cùng của stream bằng cách bỏ qua tất cả các phần tử trước nó với skip method trong stream.

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        List<String> valueList = new ArrayList<>();
        valueList.add("Joe");
        valueList.add("John");
        valueList.add("Sean");

        long count = valueList.stream().count();
        Stream<String> stream = valueList.stream();

        String last = stream.skip(count - 1).findFirst().get();
        System.out.println(last);
    }
}

Output: Sean

Nguồn 

https://www.baeldung.com/java-stream-last-element

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x