【发布时间】:2019-05-20 09:39:15
【问题描述】:
我的目标是打印出四个值中的两个值 - 名称(字符串)和头发颜色(枚举) - 描述数组列表中的某个对象。问题在于按名称按字母顺序对打印列表进行排序。这一切都必须在一个 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;
}
【问题讨论】:
标签: java sorting arraylist lambda java-stream