私は単一の基準の出力のそれぞれの中に複数の基準で並べ替える必要があるオブジェクトのリストを持っていました。例えば、EmploymentType、CategoryType、DepartmentType、Retirement date、employeeidのフィールドを有する従業員クラス。だから私は、私はここで使用することができるJavaのデザインパターンのどれかを知りたいemployid.so内の退職日以内に部門別のsort内でcategoryTypeをソートする必要があるemployTypeの基準でepmloyeeのリストをソートしたいですか?ここでは代わりに、あなたは設計の原則に従うことができますどのように考える必要があり、デザインパターン、次のコレクションの複数の並べ替えのベストデザインパターンです
-3
A
答えて
0
:あなたのケースでは
は、あなたのクラスに様々なソート機能を追加します。しかし、あなたが同じクラスでそれを行うと、それは単一責任原則に違反します。
今後、新しいソートを追加するようになると、Open Closed Principleに違反する既存のクラスを変更します。
元の質問に戻って、それを行う最良の方法は、コンパレータを使用することです。
EmploymentTypeComparator、DepartmentTypeComparatorなどの別のクラスを使用できます。これらのクラスはソートロジックを処理します。
あなたは実装の詳細については、以下のコードを参照することができます。
https://examples.javacodegeeks.com/core-java/util/comparator/java-comparator-example/
+1
さらに、比較器を 'Comparator.thenComparing'(Java8 +)で連鎖させることで、ネストされたソートを簡単に行うことができます。 – hoefling
関連する問題
- 1. コレクションのカスタム並べ替え
- 2. コトリンの複数のフィールドでコレクションを並べ替え
- 3. C#複数の値で並べ替え
- 4. sencha - 複数のフィールドで並べ替え
- 5. 複数並べ替えList.js
- 6. レンダリングカウンタのコレクション並べ替え順序
- 7. 複数配列の並べ替え
- 8. 複合数値の並べ替え
- 9. Excel VBA複数行の並べ替え
- 10. XSL複数の並べ替え
- 11. VBA複数行の並べ替え
- 12. Javaでコレクションを並べ替える
- 13. ジキル:サイズでコレクションを並べ替え
- 14. 並べ替えで並べ替え
- 15. Plone 4コレクションをカスタマイズして複数のフィールドで並べ替える方法
- 16. Laravelの複数の基準に基づいてコレクションを並べ替える
- 17. Magento:商品コレクションを並べ替える
- 18. Eloquentコレクションを並べ替えるには?
- 19. C++の選択並べ替えなし並べ替え並べ替えなし
- 20. DB内での並べ替えとアプリケーションの並べ替え
- 21. 選択並べ替え並べ替え
- 22. MarkLogic node.js api - グループを並べ替え、並べ替えで並べ替え
- 23. FirebaseデータベースのアイテムをReactネイティブリストビューで並べ替え/並べ替え
- 24. ICriteria&NHibernateを使用してコレクション数で並べ替え
- 25. Laravelコレクションを関係数で並べ替え
- 26. Android:複数のlinearLayoutsの間で子供の並べ替え
- 27. 複数の10進数で列を並べ替える
- 28. 複数の列を数値で並べ替える
- 29. C#で、関連する項目のコレクションを並べ替え
- 30. XMLノードを複数の基準で並べ替えます
これは、デザインパターンとは何の関係もありません。クラスへのアクセス権があれば、 'Comparable'インターフェースを実装する必要があります。これは' compareTo(Object o) 'というメソッドをオーバーライドすることを可能にします。これについては、「スタックオーバーフロー」を参照してください。 – MaxG