2015-11-05 13 views
9

Giả sử tôi có nhiều bộ sưu tập mà tôi muốn xử lý dưới dạng một luồng. Cách dễ nhất để làm điều này là gì? Có một lớp tiện ích nào có thể làm điều này cho tôi hay tôi phải tự mình cuộn một cái gì đó?Cách dễ nhất để kết hợp nhiều bộ sưu tập vào một luồng trong Java là gì?

Trong trường hợp câu hỏi của tôi là không rõ ràng, điều này về cơ bản là những gì tôi đang cố gắng để làm:

Collection<Region> usaRegions; 
Collection<Region> canadaRegions; 
Collection<Region> mexicoRegions; 
Stream<Region> northAmericanRegions = collect(usaRegions, canadaRegions, mexicoRegions); 

public Stream<T> collect(T...) { 
    /* What goes here? */ 
} 
+5

Yea 'java.util của nó .stream.Stream.concat'. Xem http://stackoverflow.com/questions/22740464/adding-two-java-8-streams-or-an-extra-element-to-a-stream –

+0

Gọn gàng - Tôi đã không nhận ra rằng 'concat' tồn tại ! Cảm ơn! –

Trả lời

13

Cách khác, bạn có thể sử dụng flatMap:

Stream<Region> = 
    Stream.of(usaRegions, canadaRegions, mexicoRegions) 
      .flatMap(Collection::stream); 
Các vấn đề liên quan