Teilmenge eines Sets in Java erstellen
Ich habe eine LinkedHashSet
ich.e eine geordnete Menge. Ich versuche zu finden, eine Funktion zu, die gerade wieder eine Teilmenge der Menge, ich.e die ersten 20 Elemente der Menge. Ich weiß, ich kann es tun, indem Sie erstellen einen neuen Satz und dann Auffüllen mit Hilfe einer iteration der ersten gesetzt, aber ich hatte gehofft, für etwas kurz und bündig.
Nahm auch einen Blick in die Google Guava Bibliotheken, aber nicht sehen konnte, was ich wollte.
InformationsquelleAutor der Frage Paul Taylor | 2012-10-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Guave:
Beachten Sie, dass
Iterables.limit()
ausgewertet wird träge, also nur eine extra Sammlung angelegt.InformationsquelleAutor der Antwort Tomasz Nurkiewicz
Könnte man dies tun:
InformationsquelleAutor der Antwort Reimeus
Einer Lösung mit streams und Sammler aus Java 8:
Diese übernimmt
import static java.util.stream.Collectors.toCollection;
.InformationsquelleAutor der Antwort Lii
In Java 8, die Sie tun können
InformationsquelleAutor der Antwort thiagoh
Können Sie entweder zunächst eine
SortedSet
alsUntermenge
Methode existiert.Außerdem können Sie den Inhalt Ihres sets zu einem
List
und verwenden Sie diesubList
- Methode auf. Aber es hängt von der Menge der gespeicherten Daten in IhremSet
wie Sie würde nicht wollen, duplizieren Sie eine enorme Menge von Daten.Ansonsten sollten Sie bleiben mit der iteration über die Menge, wie es sein wird effizienter.
InformationsquelleAutor der Antwort Alex
Einfache Hilfsmethode (Sie können es verwenden, für Satz oder jede andere Sammlung):
InformationsquelleAutor der Antwort user1079877