如何在对象声明</integer>中初始化arrayList <integer>

时间:2014-04-04 19:55:27

标签: java arraylist

Chest是一个不同的类,我想把它变成一个对象,在胸部类中我只想用一堆值来声明它,包括一个将是int的ArrayList

如何正确格式化?非常感谢你的帮助!

无法正确编译。

Chest chest = new Chest(0,0,0, {0},false,false);

希望这对我正在尝试的事情有意义

这是另一个类中的arrayList

 import java.util.*;

public class Chest
{
   public ArrayList<Integer> idList;
   public boolean closed;
   public boolean opened;

   public Chest(int xpos, int ypos, int numContents, ArrayList<Integer> idList, boolean opened, boolean closed)
   {
     this.closed = true;
     this.opened = false;
   }

 }

我是如何修理它的

Chest chest = new Chest(0,0,0, new ArrayList<Integer>(),false,false);

谢谢micha!

3 个答案:

答案 0 :(得分:2)

你可以这样做:

Chest chest = new Chest(0, 0, 0, new ArrayList<Integer>(), false, false);

如果要向列表中添加值,可以使用Arrays.asList()作为快捷方式:

List<Integer> list = Arrays.asList(1,2,3);
Chest chest = new Chest(0, 0, 0, list, false, false);

答案 1 :(得分:2)

一种简单的方法:

chest = new Chest(0,0,0, Arrays.asList(5, 6, 7),false,false);

但这会导致构造函数中的ArrayList<Integer> idList出现问题。您应该probably changeList<Integer> idList

如果没有,您可以使用

new ArrayList<>(Arrays.asList(5, 6, 7))正如我的原始答案所示。

请参阅:Arrays.asList(T... a)

答案 2 :(得分:1)

您可以使用以下命令对其进行初始化:

new Chest(0, 0, 0, Arrays.asList(0), false, false)

请注意,返回类型为List<Integer>而不是ArrayList<Integer>,这可能是您想要的。可能没有必要指定在类声明中使用的接口List的具体实现。

如果要将其初始化为空列表,可以使用:

new Chest(0, 0, 0, Collections.emptyList(), false, false)

请注意,在这两种情况下,您都会获得一个不可变列表。