Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào để sử dụng phương thức collect () trong Stream API trong Java 9?


collect () trong API luồng thu thập tất cả các đối tượng từ một đối tượng luồng và được lưu trữ trong loại bộ sưu tập . Người dùng phải cung cấp loại tập hợp mà kết quả có thể được lưu trữ. Chúng tôi chỉ định loại bộ sưu tập bằng cách sử dụng Enum bộ sưu tập . Có nhiều loại khác nhau và các hoạt động khác nhau có thể xuất hiện trong Danh sách người thu thập , nhưng hầu hết thời gian chúng tôi có thể sử dụng Collectors.toList () , Collectors.toSet () Collectors.toMap () .

Cú pháp

<R, A> R collect(Collector<? super T,A,R> collector)

Ví dụ

import java.util.*;
import java.util.stream.*;

public class StreamCollectMethodTest {
   public static void main(String args[]) {
      List<String> list = List.of("a", "b", "c", "d", "e", "f", "g", "h", "i");

      List<String> subset1 = list.stream()
                                 .takeWhile(s -> !s.equals("e"))
                                 .collect(Collectors.toList());
      System.out.println(subset1);

      List<String> subset2 = list.stream()
                                 .dropWhile(s -> !s.equals("e"))
                                 .collect(Collectors.toList());
      System.out.println(subset2);

      List<Integer> numbers = Stream.iterate(1, i -> i <= 10, i -> i+1)
                                    .collect(Collectors.toList());
      System.out.println(numbers);
   }
}

Đầu ra

[a, b, c, d]
[e, f, g, h, i]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]