各Employeeオブジェクトにはプロパティの開始日があります。 タスクは、最も早い開始日を持つ従業員を1人だけ選択することです。 私はこれにJava 8 Predicateを使用しようとしています。 基本的にどのように述語でリスト要素を互いに比較できますか? また、lambdaをFunctionalインターフェイスで使用して同じことを行う方法はありますか?要素のプロパティに基づいて一覧から要素を選択するためのJava 8述語
1
A
答えて
1
Java述語は、述語の数学的概念に基づいています。述語は、xのいくつかのプロパティに基づいて真または偽を返す関数F(x)です。コレクションをトラバースしている間に関数を再定義することはできないので、おそらくコレクションの最小値または最大値を見つけるための選択肢ではありません。
Java 8を使用する場合は、Javaストリームに含まれるmin
関数を使用することをお勧めします。あなたは従業員を持っていると仮定すると
Employee oldestEmployee = employees.stream().min(Comparator.comparing(Employee::getStartDate)).get()
1
:
class Employee {
private LocalDate startDate;
}
をコンストラクタとゲッターは省略されています。最も早いstartDateを持つ従業員は、次のように見つけることができます。
Optional<Employee> min = list.stream()
.min(Comparator.comparing(Employee::getStartDate));
関連する問題
- 1. 子要素の数に基づいて親要素を選択
- 2. プロパティに基づいて、セットから要素を素早く選択
- 3. 述語に基づいた重複リスト要素
- 4. 述語に基づくQStringの要素を置換する
- 5. HTML選択オプション値に基づいて別の要素を選択するCSS
- 6. 親の属性値に基づいて子要素を選択
- 7. 選択に基づいて要素を見つける方法
- 8. 属性に基づいて要素を選択する - いくつかの要素がありません
- 9. シーケンスに基づく一覧の要素のペアの結合
- 10. 属性に基づいたjavascriptでHTML要素を選択
- 11. 他の要素のプロパティに基づいて要素のスタイルを変更
- 12. CSSに基づいて子要素を選択
- 13. XPath:次の要素のテキストに基づいて要素を選択しますか?
- 14. セレンのwebdriverの他の要素に基づいて要素を選択する方法
- 15. 子要素との一致に基づいて要素を返すLINQ
- 16. AngularJS:他のオブジェクトに基づいてng-repeatの要素をあらかじめ選択してください
- 17. コンテキストメニューの選択に基づいてツリービューア要素を編集する方法
- 18. コンテンツに基づいてHTML要素内のテキストを選択する方法は?
- 19. NSArrayの要素に基づいてメソッドを選択する方法(Objective-C)
- 20. numpy配列のリストに基づいて要素を選択する方法は?
- 21. 特定の条件に基づいて論理ベクトル要素を選択する
- 22. 要素が外部配列にあるかどうかに基づいてデータフレームの一部を選択する
- 23. 特定の要素のみをJava 8述語でフィルタリングする方法は?
- 24. 与えられた要素の下にない要素を選択する
- 25. Selenium - 単一要素属性の2つの要素に基づいた要素の検索
- 26. 選択肢の要素に基づいてフォームを別のURLにリダイレクト
- 27. jQuery要素から要素を選択する方法
- 28. 最新の子要素の属性に基づいて親を選択
- 29. XPath - 部分文字列に基づいて要素を選択する方法
- 30. <select>要素から選択したオプションに基づいて異なる入力を無効にする
コンパイラーで端末機能を使用できます。 [this one](https://stackoverflow.com/questions/22561614/java-8-streams-min-and-max-why-does-this-compile#) – GurV
をご覧ください。試しました? – Vaseph