如何初始化静态数组?

79

我看到过不同的方法来定义Java中的静态数组。要么是:

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

...或仅仅

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

或者作为一个List

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

除了List定义以外,有没有区别?

哪种方式更好(从性能角度)?

2个回答

121

如果您正在创建一个数组,那么没有区别,但是以下方式更加整洁:

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

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

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

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

9
没有区别,这只是“语法糖”。Arrays.asList(..)会创建一个额外的列表。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接