Konvertieren von Set<Integer> Set<String> in Java
Gibt es eine einfache Möglichkeit zu konvertieren Set<Integer>
zu Set<String>
ohne Iteration durch den gesamten Satz?
InformationsquelleAutor der Frage Mat B. | 2011-05-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht. Sie formatieren jede ganze Zahl und fügen Sie es zu Ihrem string-set.
InformationsquelleAutor der Antwort Isaac Truett
Nicht. Der beste Weg ist eine Schleife.
Etwas einfach und relativ schnell, ist unkompliziert und ausdrucksstark ist wohl am besten.
(Update:) In Java 8, die gleiche Sache, die getan werden kann mit einem lambda-Ausdruck ein, wenn Sie möchten, um zu verbergen die Schleife.
InformationsquelleAutor der Antwort CajunLuke
verwenden Java8-stream-anzeigen und sammeln Fähigkeiten:
InformationsquelleAutor der Antwort doronk
Können Sie ein Dekorateur, wenn Sie wirklich nicht wollen, Durchlaufen Sie den gesamten Satz
InformationsquelleAutor der Antwort VirtualTroll
Könnten Sie Commons Collections' TransformedSet oder Guave ist Collections2.transform(...)
In beiden Fällen ist ein Funktor würde vermutlich rufen Sie einfach die Integer-toString().
InformationsquelleAutor der Antwort Dilum Ranatunga
Du implementieren könntest
Set<String>
sich und leiten alle Anrufe an die ursprüngliche Gruppe kümmert sich um die notwendigen Konvertierungen nur bei Bedarf. Je nachdem, wie der Satz verwendet wird, könnte deutlich besser oder deutlich schlechter.InformationsquelleAutor der Antwort Kim Stebel
Ist, soweit ich weiß, haben Sie zum Durchlaufen der Sammlung; vor allem, wenn es eine Umwandlung beteiligt sind, ist nicht natürlich. also, wenn Sie versuchen, zu konvertieren von Set-Timestamp - Set-Datum-; Sie konnten erreichen, dass mit einer Kombination von Java-Generics (seit Timestamp umgewandelt werden kann Datum). Aber da Integer kann nicht gewirkt werden, um die Zeichenfolge, die Sie benötigen zu Durchlaufen.
InformationsquelleAutor der Antwort Basanth Roy
Mit Eclipse-Sammlungen mit Java 8:
Diese nicht erforderlich ist, boxing des int-Werten und Integer, aber man kann das auch tun, wenn erforderlich:
Sets.mutable.with(1, 2, 3)
zurückMutableSet<Integer>
im Gegensatz zuIntSets.mutable.with(1, 2, 3)
wird wieder einMutableIntSet
.Hinweis: ich bin ein committer für Eclipse Sammlungen.
InformationsquelleAutor der Antwort Donald Raab
InformationsquelleAutor der Antwort Ajay
Java 7 + Guave (vermutlich keine Möglichkeit zum wechseln zu Java 8).
InformationsquelleAutor der Antwort walv