gpt4 book ai didi

java - 对 arraylist 对象的值进行排序并在一个 lambda 中打印多个值

转载 作者:行者123 更新时间:2023-12-02 10:57:32 26 4
gpt4 key购买 nike

我的目标是打印出四个值中的两个值 - 名称(字符串)和头发颜色(枚举) - 描述数组列表中的某个对象。问题在于按名称字母顺序对打印列表进行排序。这一切都必须在一个 lambda 中。

我只能将其打印出来,而不进行排序。我已经设置了覆盖,但由于我仍在学习,我似乎无法让它工作。

public void printAllNamesColours() {
people.stream()
.forEach(n->System.out.println(n.getName() + " " + n.getColour()));
}

@Override
public int compareTo(Person person) {
int ret = name.compareToIgnoreCase(person.name);
if (ret == 0) {
ret = colour.compareTo(person.colour);
}
if (ret == 0) {
ret = age - person.age;
}
return ret;
}

最佳答案

您可以使用Stream.sorted对其进行排序如:

people.stream()
.sorted() // considering your `compareTo` implementation
.forEach(n -> System.out.println(n.getName() + " " + n.getColour()));

关于java - 对 arraylist 对象的值进行排序并在一个 lambda 中打印多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53858970/

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