DrAhzek:
名前(文字列)、ヘアカラー(列挙型) - - ArrayListの中で特定のオブジェクトを記述私の目標は、4のうち2つの値をプリントアウトすることです。問題は、名前のアルファベット順に印刷されたリストをソートしてあります。それはすべて1つのラムダでなければなりません。
私はちょうどソートせずに、それをプリントアウトして立ち往生しています。私はすでにオーバーライドを設定しているが、私はまだ学んでいることから、私はそれが仕事を得るように見えることはできません。
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()));