2 つのクラス A と B に共通の日付属性があるとします。2 つの List<A> と List<B> を日付に従って並べ替えたいと思います。最適な方法は何ですか?
私が知っている方法は、基本クラスを作成し、A と B がこの基本クラスを継承し、Collections.sort() を呼び出して並べ替えることです。
もっと良い方法、またはリフレクションを使用して同様のメソッドを記述する方法はありますか? または、使用できる既製のライブラリはありますか?
天蓬老师2017-06-14 10:54:58
上記の方法を使用する方が良い方法です。 1. Java 自体が提供する API を使用して、コードの量を減らすことができます。 2. コードのスタイルの点でも、上記の方法は非常に優れています。
別のアイデアは、各クラス A と B の日付を抽出し、それを A と B のオブジェクト自体に関連付けることです。たとえば、Index には日付とクラス A と B のオブジェクトへの参照という 2 つの属性があります。 id を使用して、A および B の各クラス オブジェクトが Index オブジェクトに関連付けられます。その後、Index オブジェクトが並べ替えられ、A または B に対応するオブジェクトが、インデックス オブジェクトと同じ順序で ID を介して検索されます。並べ替えました。
typecho2017-06-14 10:54:58
基本クラスを作成し、AとBがそれを拡張します
インターフェースを作成し、AとBを実装します
リスト<オブジェクト>を作成してから、コンパレータで型を強制する必要があります
Wrapperクラスを取得し、AとBをラップしてListに入れて並べ替えます