将数组添加到ArrayList

时间:2015-02-18 15:30:44

标签: java arrays 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.colorsArrayList。 我应该怎么做呢?

2 个答案:

答案 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);
  }
}