我已经看到了在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定义外)?
更好的方法(表现明智)是什么?
答案 0 :(得分:103)
如果您正在创建一个阵列,那么没有区别,但是,以下是整洁的:
String[] suit = {
"spades",
"hearts",
"diamonds",
"clubs"
};
但是,如果你想将一个数组传递给一个方法,你必须像这样调用它:
myMethod(new String[] {"spades", "hearts"});
myMethod({"spades", "hearts"}); //won't compile!
答案 1 :(得分:9)
不,没有区别。它只是syntactic sugar。 Arrays.asList(..)
会创建一个附加列表。