在java中创建自定义对象数组

时间:2013-12-05 14:36:28

标签: java arrays

我有100条数据记录从服务进入我的系统。我想为每个记录创建100个类对象,以将其序列化为我的自定义类。我在for循环中创建了这个内存,如下所示

for(int i=0; i < 100; i++)
{
SomeClass s1 = new SomeClass();
//here i assign data to s1 that i received from service
}

有没有办法在数组外部创建所有100个对象,只需在for循环中分配数据。

I already tried Array.newInstance and SomeClass[] s1 = new SomeClass[100]

两者都会产生空指针数组。有没有办法可以在for循环之外分配所有内存。

2 个答案:

答案 0 :(得分:18)

执行此操作时:

Object[] myArray = new Object[100]

Java分配100个位置来放置对象。它不会为你实例化对象。

你可以这样做:

SomeClass[] array = new SomeClass[100];

for (int i = 0; i < 100; i++) {
    SomeClass someObject = new SomeClass();
    // set properties
    array[i] = someObject;
}

答案 1 :(得分:0)

在单行创建自定义对象数组时,我发现下面非常有用:

public class Hotel {
    private int frequency;
    private String name;
    public Hotel(int frequency,String name){
        this.frequency = frequency;
        this.name = name;
    }
}
public class PriorityQueueTester {
    public static void main(String args[]){
        Queue<Hotel> hotelPQ = new PriorityQueue<Hotel>();
        Hotel h[] = new Hotel[]{new Hotel(4,"Harshil"),new Hotel(5,"Devarshi"),new Hotel(6,"Mansi")};
        System.out.println(h[0].getName() + " "+h[1].getName()+" "+h[2].getName());
    } 
}