Transformieren und konvertieren Sie eine Liste von Set mit Guava
Gibt es eine einfache Möglichkeit, um konvertieren und verwandeln eine Liste mit Guave?
Ich würde gerne verwenden Sie die Methode:
Set<To> result = Sets.transformToSet(myList, new Function<From, To>() {
public To apply(From item) {
return convert(item);
}
});
dies ist mein code, mit "tempCollection"
Collection<To> tempCollection = Collections2.transform(myList, new Function<From, To>() {
public To apply(From item) {
return convert(item);
}
});
Set<To> result = newHashSet(tempCollection );
Es gibt nicht so etwas, weil A) es gibt verschiedene Arten von sets mit verschiedenen Verhaltensweisen (z.B.
HashSet
vs. TreeSet
) und Sie müssen wählen, welche Sie verwenden möchten, und B) die transform
Methoden sind faul Aussicht und ein Set
kann nicht sein, ein Blick auf eine beliebige Sammlung ohne O(n) size
und contains
Methoden.InformationsquelleAutor Omar Hrynkiewicz | 2013-11-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies schafft eine ImmutableSet, die keine null-Werte akzeptieren. Also, wenn Sie wollen, Ihren Satz zu null enthalten, müssen Sie eine andere Lösung, wie die, die Sie gerade verwenden.
Beachten Sie, dass, wenn es die Erzeugung von temporären Sammlung, die Sie stört, sollten Sie nicht belästigt werden. Wird keine Kopie erstellt. Die Auflistung ist lediglich eine Ansicht über die ursprüngliche Liste.
filter(Predicates.notNull())
nach der transform () -Außer wenn Sie wollen null-Wert im zurückgegebenen Set. Ich werde klären, meine Antwort.
Wenn Sie nicht möchten, dass ein
ImmutableSet
statttoSet()
Sie tun konntecopyInto(new HashSet<To>())
unter anderem.InformationsquelleAutor JB Nizet