74

我已经看到了在 Java 中定义静态数组的不同方法。任何一个:

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

...或仅

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

或作为List

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

有区别吗(当然列表定义除外)?

什么是更好的方法(性能方面)?

4

2 回答 2

113

如果您正在创建一个数组,则没有区别,但是,以下内容更简洁:

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

但是,如果你想将一个数组传递给一个方法,你必须像这样调用它:

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

myMethod({"spades", "hearts"}); //won't compile!
于 2011-08-08T09:47:19.747 回答
9

不,没有区别。这只是语法糖Arrays.asList(..)创建一个附加列表。

于 2011-08-08T09:40:14.970 回答