416 Stimmen

Wie man schnell und bequem ein ArrayList mit einem Element erstellt

Gibt es irgendwo eine Hilfsmethode, die dies in einer Zeile tun kann? Ich kann es nirgendwo in Collections oder Liste finden.

public List stringToOneElementList(String s) {
    List list = new ArrayList();
    list.add(s);
    return list;
}

Ich möchte das Rad nicht neu erfinden, es sei denn, ich plane, schicke Felgen darauf zu setzen.

Nun... der Typ kann T sein und nicht String. Aber du verstehst den Punkt. (mit allen Nullprüfungen, Sicherheitsüberprüfungen... usw.)

15voto

SLaks Punkte 832502

Ganz einfach:

Arrays.asList("Hi!")

5voto

vegemite4me Punkte 6231

Weil Guave erwähnt wird, dachte ich, ich würde auch Eclipse Collections (ehemals GS Collections) vorschlagen.

Die folgenden Beispiele geben alle eine List mit einem einzigen Element zurück.

Lists.mutable.of("Nur ein Element");
Lists.mutable.with("Oder verwenden Sie es mit");
Lists.immutable.of("Vielleicht muss es unveränderlich sein?");
Lists.immutable.with("Und verwenden Sie es mit, wenn Sie möchten");

Es gibt ähnliche Methoden für andere Sammlungen.

2voto

Stein Punkte 1367

Yet another alternative is doppelte geschweifte Klammer Initialisierung, z. B.

new ArrayList() {{ add(s); }};

aber es ist ineffizient und obskur. Daher nur geeignet:

  • für Code, der Speicherlecks nicht stört, wie die meisten Unit-Tests und andere kurzlebige Programme;
  • und wenn keine der anderen Lösungen zutrifft, was ich denke, impliziert, dass du bis ganz nach unten gescrollt bist, um einen anderen Typ von Container als den ArrayList in der Frage zu befüllen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X