Java将项目作为数组添加到类中

时间:2014-11-11 09:07:22

标签: java

我只有以下类结构,我想添加任何项目。

public class Person implements Serializable {
    private String name;
    private String mobile;

    public Person(String n, String e) { name = n; mobile = e; }

    public String getName() { return name; }
    public String getMobile() { return mobile; }

    @Override
    public String toString() { return name; }
}

我想添加任何类似的项目:

    people = new Person[]{
            new Person("Hi"   , " programmer"),
            new Person("Hello", " world")
    };

我的代码是这样的,我希望通过while()将代码添加到代码中。我的代码不正确。

people =  new Person[]{};
while (phones.moveToNext())
{
        people =  new Person("Hi"   , " programmer");
        people =  new Person("Hello", " world")
}

5 个答案:

答案 0 :(得分:1)

你的源代码中有错误,你试图把人的对象放入数组中,这样就会给你编译错误 为了克服这个问题首先采用List of Type Person并将其转换为数组并在Array上执行业务逻辑更好地使用List而不是Array

           List<Person> personlst = new ArrayList<Person>();
            while (phones.moveToNext())
            {
                personlst.add(new Person("Hi"   , " programmer"));
                personlst.add(new Person("Hello", " world"));
            }
            Object[]arryPer = personlst.toArray();
            Person[]people = new Person[arryPer.length];

        for (int j = 0; j < arryPer.length; j++) {
            people[j] = (Person) arryPer[j];
        }

上面的代码块给出了类型人的数组

答案 1 :(得分:0)

您没有定义要推入阵列的元素数量。此外,您甚至没有将这些元素制作成阵列。你应该做点什么:

int i =0;
people =  new Person[1000];// you need to define how many elements you need here or go for list
while (phones.moveToNext())
{
    people[i++] =  new Person("Hi"   , " programmer");
    people[i++] =  new Person("Hello", " world")
}

答案 2 :(得分:0)

首先定义人物的大小。

人[]人=新人[10];

然后以迭代为例。

for(int i = 0; i < 0; i++){
            people[i] = new Person("Hi"   , " programmer");
}

答案 3 :(得分:0)

首先将所有元素放在列表中,然后形成数组:

List<Person> list = new ArrayList<Person>();
    while (phones.moveToNext()) {
        list.add(new Person("Hi", " programmer"));
        list.add(new Person("Hello", " world"));
    }
    Person[]  persons = new Person[list.size()];
    list.toArray(persons);
}

答案 4 :(得分:0)

尝试Arrays.asList

http://www.tutorialspoint.com/java/util/arrays_aslist.html

注意 - 它仅适用于少量元素,因为数组通常会占用连续的内存。

正如人们上面所说,从空间的角度来看,列表是任何一天都更好。