[英]Retrieve array[] of values from ArrayList of objects
假設我有一個對象的ArrayList。 例如: ArrayList<Person> personList
,其中每個Person
有2個類變量String name
和int age
。 這些變量每個都有自己的getter方法getName()
和getAge()
。
檢索int ages[]
的數組(或ArrayList)的最簡單方法是什么?
請注意,此問題類似於詳細標題為“ 從java中的對象數組中檢索分配給特定類成員的值數組 ”,盡管沒有對for循環的任意限制,並且使用ArrayList而不是Array。
創建與列表大小相同的目標數組,然后遍歷列表並將每個元素的age
添加到目標數組。
有很多方法可以做到這一點 - 這是一個。
首先將年齡放入列表(使用java8流),然后將列表轉換為數組。
public int[] getAges() {
return personList.stream()
.mapToInt(Person::getAge)
.toArray();
}
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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.