如何初始化静态数组?

我看到了在 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 的定义) ?

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

168341 次浏览

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

如果你正在创建一个数组,那么没有什么区别,但是,下面的例子更为简洁:

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

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

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


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