将数组添加到 ArrayList
Adding an Array to an ArrayList
大家好!我正在制作一款名为 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
。
我该怎么办?
java.util.Arrays
class 提供了一种将数组转换为 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
而不是使用可变参数。
List<Color> colors = new ArrayList<Color>();
public Door(Collection<Color> colors) {
this.colors.addAll(colors);
}
请勿使用 Arrays.asList
。根据调用的次数,它会影响性能,因为每次调用 asList
方法时,都会创建一个新的 List
。
您可以而且应该使用:
public Door(Color... colors) {
addAll(colors);
}
public void addAll(Color... colors) {
for (Color color : colors) {
myList.add(color);
}
}
大家好!我正在制作一款名为 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
。
我该怎么办?
java.util.Arrays
class 提供了一种将数组转换为 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
而不是使用可变参数。
List<Color> colors = new ArrayList<Color>();
public Door(Collection<Color> colors) {
this.colors.addAll(colors);
}
请勿使用 Arrays.asList
。根据调用的次数,它会影响性能,因为每次调用 asList
方法时,都会创建一个新的 List
。
您可以而且应该使用:
public Door(Color... colors) {
addAll(colors);
}
public void addAll(Color... colors) {
for (Color color : colors) {
myList.add(color);
}
}