Wie initialisiere ich ein statisches Array?

70

Ich habe verschiedene Ansätze gesehen, um ein statisches Array in Java zu definieren. Entweder:

String[] suit = new String[] {
  "spades", 
  "hearts", 
  "diamonds", 
  "clubs"  
};

... oder nur

String[] suit = {
  "spades", 
  "hearts", 
  "diamonds", 
  "clubs"  
};

oder als List

List suit = Arrays.asList(
  "spades", 
  "hearts", 
  "diamonds", 
  "clubs"  
);

Gibt es einen Unterschied (außer natürlich der Listendefinition)?

Was ist der bessere Weg (leistungsmäßig)?

Jeremy S.
quelle

Antworten:

108

Wenn Sie ein Array erstellen, gibt es keinen Unterschied. Folgendes ist jedoch besser:

String[] suit = {
  "spades", 
  "hearts", 
  "diamonds", 
  "clubs"  
};

Wenn Sie jedoch ein Array an eine Methode übergeben möchten, müssen Sie es folgendermaßen aufrufen:

myMethod(new String[] {"spades", "hearts"});

myMethod({"spades", "hearts"}); //won't compile!
Dogbane
quelle
9

Nein, kein Unterschied. Es ist nur syntaktischer Zucker . Arrays.asList(..)erstellt eine zusätzliche Liste.

Bozho
quelle