3312 Stimmen

Initialisierung einer ArrayList in einer Zeile

Ich wollte eine Liste von Optionen zu Testzwecken erstellen. Zuerst habe ich dies getan:

ArrayList<String> places = new ArrayList<String>();
places.add("Buenos Aires");
places.add("Córdoba");
places.add("La Plata");

Dann habe ich den Code wie folgt umstrukturiert:

ArrayList<String> places = new ArrayList<String>(
    Arrays.asList("Buenos Aires", "Córdoba", "La Plata"));

Gibt es eine bessere Möglichkeit, dies zu tun?

43 Stimmen

Wenn dies für Unit-Tests gedacht ist, sollten Sie Groovy einmal ausprobieren. Sie können Ihren Testcode in Groovy schreiben, während Sie Java-Code testen, und mit ArrasyList<String> places = ["Buenos Aires", "Córdoba", "La Plata"]

5 Stimmen

In Java SE 7 können Sie den parametrisierten Typ des Konstruktors durch eine leere Menge von Typparametern (<>) ersetzen: Map<String, List<String>> myMap = new HashMap<>();

2 Stimmen

11voto

user2801794 Punkte 109

Verwenden Sie einfach den unten stehenden Code wie folgt.

List<String> list = new ArrayList<String>() {{
            add("A");
            add("B");
            add("C");
}};

8voto

Richard B Punkte 823

Die kompakteste Art, dies zu tun, ist:

Double array[] = { 1.0, 2.0, 3.0};
List<Double> list = Arrays.asList(array);

8voto

Henok T Punkte 914

Hier ist ein anderer Weg:

List<String> values = Stream.of("One", "Two").collect(Collectors.toList());

8voto

Donald Raab Punkte 6053

Mit Eclipse-Kollektionen können Sie Folgendes schreiben:

List<String> list = Lists.mutable.with("Buenos Aires", "Córdoba", "La Plata");

Sie können auch genauere Angaben zu den Typen machen und angeben, ob sie veränderbar oder unveränderlich sind.

MutableList<String> mList = Lists.mutable.with("Buenos Aires", "Córdoba", "La Plata");
ImmutableList<String> iList = Lists.immutable.with("Buenos Aires", "Córdoba", "La Plata");

Dasselbe können Sie auch mit Sets und Taschen machen:

Set<String> set = Sets.mutable.with("Buenos Aires", "Córdoba", "La Plata");
MutableSet<String> mSet = Sets.mutable.with("Buenos Aires", "Córdoba", "La Plata");
ImmutableSet<String> iSet = Sets.immutable.with("Buenos Aires", "Córdoba", "La Plata");

Bag<String> bag = Bags.mutable.with("Buenos Aires", "Córdoba", "La Plata");
MutableBag<String> mBag = Bags.mutable.with("Buenos Aires", "Córdoba", "La Plata");
ImmutableBag<String> iBag = Bags.immutable.with("Buenos Aires", "Córdoba", "La Plata");

Note : Ich bin ein Committer für Eclipse Collections.

8voto

user85421 Punkte 28350

Java 9 verfügt über die folgende Methode zur Erstellung eines unveränderlich Liste:

List<String> places = List.of("Buenos Aires", "Córdoba", "La Plata");

die leicht angepasst werden kann, um bei Bedarf eine veränderbare Liste zu erstellen:

List<String> places = new ArrayList<>(List.of("Buenos Aires", "Córdoba", "La Plata"));

Ähnliche Methoden sind verfügbar für Set y Map .

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