ジェイコブ:
私は、ネストされたクラスの属性に基づいて以下のように見えるのリストをソートしたいです。
class Test {
private NestedClass nestedClass;
private AnotherNested anotherNested;
private int id;
//getter, setter
}
class NestedClass {
private String field1;
private int field2;
// getter,setter
}
List<Test> tests = service.getTests(string something);
私がすることによってテストをソートするfield1
にはnestedClass
使用してComparator.comparingを。私はその下に動作していないようです試してみました
tests.stream().sorted(Comparator.comparing(test->test.getNestedClass().getField1()));
また:
あなたは呼んでいるsorted
のAPIをStream
しかしにソートされたストリームを収集していないList<Test>
さらに。ノーオペレーションは、あなたが同様の理由で使用したコードの行で一切行われません。
代わりに操作を実行するには、かなりの呼び出しされなければならないsort
でAPIをList
とのインタフェース:
tests.sort(Comparator.comparing(test -> test.getNestedClass().getField1()));
さもないとのような端末操作などのデータを収集し、ストリーム操作を完了します。
List<Test> sortedTests = tests.stream()
.sorted(Comparator.comparing(test->test.getNestedClass().getField1()))
.collect(Collectors.toList());