2011-08-08 10 views
57

私は、Javaで静的配列を定義するさまざまなアプローチを見てきました。次のいずれかの静的配列を初期化する方法は?

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

...または唯一

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

またはList

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

としては、(当然のリスト定義を除く)の違いはありますか?

より良い方法(パフォーマンスが良い)は何ですか?

答えて

95

あなたは、配列を作成している場合は、違いはありませんが、しかし、次のようにすっきりです。

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

myMethod({"spades", "hearts"}); //won't compile! 
+1

これまでのところ最良の答え –

8

いいえ、違いはありません。ちょうどsyntactic sugarです。 Arrays.asList(..)は追加リストを作成します。あなたはメソッドに配列を渡したい場合は、このようにそれを呼び出す必要があり、

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

しかし: