28
Um die neue Stream-API besser zu verstehen, versuche ich, alten Code zu konvertieren, aber ich stecke auf diesem fest.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;
}
Ich kann keine gültige Collector für sie zu schaffen scheinen:
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());' oder '.collect (toCollection (HashSet :: new));' wie dort ist keine Garantie hinter der gesetzten Implementierung von 'toSet()'. –
oder '.collect (HashSet :: neu, Set :: addAll, Set :: addAll)' – Misha