プロパティに基づいて ArrayList からオブジェクトを取得する
オブジェクト指向プログラミングでは、オブジェクトをコレクション内の特定のプロパティ。これは、POJO を使用し、メモリ内キャッシュからオブジェクトを取得する必要がある Java EE などのフレームワークで特に役立ちます。
Carnet オブジェクトのリストを管理しているシナリオを考えてみましょう。それぞれが codeTitre、nomTitre、codeIsin などのプロパティを持っています。 codeIsin に基づいて特定の Carnet オブジェクトを検索する必要があるとします。これを実現するには、Java のストリームの機能を活用できます。
public static Carnet findByCodeIsIn(Collection<Carnet> listCarnet, String codeIsIn) { return listCarnet.stream().filter(carnet -> codeIsIn.equals(carnet.getCodeIsin())).findFirst().orElse(null); }
このコード スニペットは、ストリームを利用して Carnet オブジェクトのコレクションを効率的に検索し、指定された codeIsIn 基準に一致しないオブジェクトを除外します。 findFirst() メソッドを利用すると、最初に一致したオブジェクトを取得します。オブジェクトが見つからない場合は null を取得します。
また、異なるプロパティを持つオブジェクトや、複数の種類のオブジェクトにわたってオブジェクトを検索する必要がある状況に遭遇することもあります。これに対処するには、FindUtils のようなユーティリティ クラスを導入できます。
public final class FindUtils { public static <T> T findByProperty(Collection<T> col, Predicate<T> filter) { return col.stream().filter(filter).findFirst().orElse(null); } }
このユーティリティ クラスは、指定された基準に基づいてオブジェクトを検索するために使用できる汎用メソッドを提供します。
さらに、CarnetUtils のようなオブジェクト タイプごとに特定のユーティリティ クラスを作成できます。
public final class CarnetUtils { public static Carnet findByCodeTitre(Collection<Carnet> listCarnet, String codeTitre) { return FindUtils.findByProperty(listCarnet, carnet -> codeTitre.equals(carnet.getCodeTitre())); } // Similar methods for finding by other properties }
これらのユーティリティ クラスを使用すると、特定のプロパティに関係なく、ArrayList 内のオブジェクトを簡単かつ柔軟に検索できます。
以上が特定のプロパティに基づいて ArrayList からオブジェクトを効率的に取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。