28
Để hiểu rõ hơn về API luồng mới, tôi đang cố gắng chuyển đổi một số mã cũ, nhưng tôi bị kẹt trên mã này.Java 8 Stream Collecting Set
public Collection<? extends File> asDestSet() {
HashMap<IFileSourceInfo, Set<File>> map = new HashMap<IFileSourceInfo, Set<File>>();
//...
Set<File> result = new HashSet<File>();
for (Set<File> v : map.values()) {
result.addAll(v);
}
return result;
}
tôi dường như không thể tạo ra một sưu tập có giá trị cho nó:
public Collection<? extends File> asDestSet() {
HashMap<IFileSourceInfo, Set<File>> map = new HashMap<IFileSourceInfo, Set<File>>();
//...
return map.values().stream().collect(/* what? */);
}
'return map.values (). Stream(). FlatMap (Set :: stream) .collect (Collectors.toSet());' hoặc '.collect (toCollection (HashSet :: new));' như ở đó không đảm bảo đằng sau việc triển khai cài đặt được trả về bởi 'toSet()'. –
hoặc '.collect (HashSet :: new, Set :: addAll, Set :: addAll)' – Misha