对象为数组

时间:2014-12-13 00:02:42

标签: java arrays

我需要对某种类型的所有对象进行分组。 例如,我有一个班级:

class A {
    public A() {
        //...
    }
}

并在主要方法中:

class B {
    public static void main(String[] args) {
        A a1 = new A();
        A a2 = new A();
        A a3 = new A();
    }
}

有没有办法对象A进行操作,好像它是一个数组,没有我创建它? 这可能是一个愚蠢的问题,但我想消除我的疑虑。

2 个答案:

答案 0 :(得分:3)

如果我理解你正确的问题......创建一堆对象并不意味着你可以立即将它们作为数组引用。做你喜欢的事情最简单的方法是:

    ArrayList<ObjectA> list = new ArrayList<ObjectA>();
    for(int i=0;i<10;i++) {
       list.add(new ObjectA());
    }

答案 1 :(得分:0)

你有几个选择。如果你真的只想要一个A值数组的静态初始化,你可以这样做:

A[] arrayOfAs = {new A(), new A(), new A()};

但也许更好的是:

List<A> listOfAs = new ArrayList<>();
listOfAs.add(new A());
listOfAs.add(new A());
// ...
listOfAs.add(new A());
// then finally:
A[] arrayOfAs = listOfAs.toArray(new A[0]);

哪个更好取决于您的背景。 “new A [0]”可能看起来很有趣,但是为了告诉Java要返回正确的类型,它是必需的。

话虽如此,像List这样的容器类可能更合适。