gpt4 book ai didi

arrays - Java 8 Streams - 从对象列表中获取不同的整数作为数组

转载 作者:行者123 更新时间:2023-12-04 14:09:13 24 4
gpt4 key购买 nike

我正在努力研究如何使用 Streams 从对象列表中获取不同的整数作为数组。
考虑我有以下类(class):

public class Person{

private int age;
private double height;

public Person(int age, double height) {
this.age= age;
this.height = height;
}

public int getAge() {
return age;
}

public double getHeight() {
return height;
}
}

然后考虑有这些对象的填充列表,例如 List<Person> people .
我的问题是,如何使用 Java 流将不同的年龄提取到 Int 数组中?
到目前为止我所拥有的是:
List<Integer> distinctAge = people.stream().distinct().mapToInt().collect(Collectors.groupingBy(Person::getAge));
显然,这不能编译,但我正在为下一步要去哪里而碰壁。
一旦我有了这个数组,我就计划从包含不同值的列表中获取所有对象 - 我认为这也可以使用 Streams?

最佳答案

您可以使用 map 收集所有年龄段的信息和电话distinct对于不同的值

Integer[] ages = persons.stream()
.map(Person::getAge)
.distinct()
.toArray(Integer[]::new);
如果您想收藏到 int[]
int[] ages = persons.stream()
.mapToInt(Person::getAge)
.distinct()
.toArray();

关于arrays - Java 8 Streams - 从对象列表中获取不同的整数作为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65815323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com