嗨嗨!我正在制作一款名为DoorElementals的游戏,我想这样做:
ArrayList<Color> colors = new ArrayList<Color>();
public Door(Color... colors) {
this.colors.add(colors);
}
public void addColor(Color... c){
this.colors.add(c);
}
但colors
是一个数组,而this.colors
是ArrayList
。
我应该怎么做呢?
答案 0 :(得分:2)
java.util.Arrays
类提供了一种从数组转换为List
的方法。
ArrayList<Color> colors = new ArrayList<Color>();
public Door(Color... colors) {
this.colors.addAll(Arrays.asList(colors));
}
public void addColor(Color... c){
this.colors.addAll(Arrays.asList(c));
}
更好的做法是让构造函数使用Collection
而不是使用varargs。
List<Color> colors = new ArrayList<Color>();
public Door(Collection<Color> colors) {
this.colors.addAll(colors);
}
答案 1 :(得分:1)
请勿使用Arrays.asList
。根据您执行的调用次数,它会影响性能,因为每次调用asList
方法时,都会创建一个新的List
。
您可以而且应该使用:
public Door(Color... colors) {
addAll(colors);
}
public void addAll(Color... colors) {
for (Color color : colors) {
myList.add(color);
}
}