从对象的ArrayList中检索值的数组[]

时间:2017-04-28 20:59:12

标签: java arrays

假设我有一个对象的ArrayList。例如:ArrayList<Person> personList,其中每个Person都有2个类变量String nameint age。这些变量每个都有自己的getter方法getName()getAge()

检索int ages[]的数组(或ArrayList)的最简单方法是什么?

请注意,此问题类似于详细标题为“Retrieve an array of values assigned to a particular class member from an array of objects in java”,但没有对for循环的任意限制,并且使用ArrayList而不是Array。

3 个答案:

答案 0 :(得分:4)

创建一个与列表大小相同的目标数组,然后遍历列表并将每个元素的age添加到目标数组。

答案 1 :(得分:3)

无数种方法 - 这是一个。

首先将年龄输入列表(使用java8流),然后将列表转换为数组。

public int[] getAges() {
    return personList.stream()
        .mapToInt(Person::getAge)
        .toArray();
}

答案 2 :(得分:2)

Person P1 = new Person("Dev", 25);
Person P2 = new Person("Andy", 12);
Person P3 = new Person("Mark", 20);
Person P4 = new Person("Jon", 33);

ArrayList<Person> personList = new ArrayList<>(Arrays.asList(new Person[] { P1, P2, P3, P4 }));
int[] ages = getPersonAges(personList); // [25, 12, 20, 33]
private static int[] getPersonAges(ArrayList<Person> personList) {
    int[] ages = new int[personList.size()];
    int idx = 0;

    for (Person P : personList) {    // Iterate through the personList
        int age = P.getAge();
        ages[idx++] = age;
    }

    return ages;
}