プロパティ値に基づいて ArrayList からオブジェクトを取得する
当面のタスクは、特定のオブジェクト、つまり Carnet インスタンスをArrayList
Java 8 ストリームのアプローチ
Java 8 ではストリームが導入され、データ コレクションを操作するための簡潔かつ効率的な方法が提供されます。目的のオブジェクトを見つけるには:
public static Carnet findByCodeIsIn(Collection<Carnet> listCarnet, String codeIsIn) { return listCarnet.stream().filter(carnet -> codeIsIn.equals(carnet.getCodeIsin())).findFirst().orElse(null); }
このメソッドは、stream() を利用してリストを走査し、filter() を利用して codeIsin 値が一致するオブジェクトのみを選択します。 findFirst() は最初に一致する要素を取得し、一致が見つからない場合は orElse() は null を返します。
汎用ユーティリティ クラスのアプローチ
複数のオブジェクト タイプ ( Carnet だけでなく)、または複数の検索プロパティ (codeIsin だけでなく) が関係している場合は、検索をカプセル化するユーティリティ クラスの作成を検討してください。ロジック:
public final class FindUtils { public static <T> T findByProperty(Collection<T> col, Predicate<T> filter) { return col.stream().filter(filter).findFirst().orElse(null); } } public final class CarnetUtils { public static Carnet findByCodeTitre(Collection<Carnet> listCarnet, String codeTitre) { return FindUtils.findByProperty(listCarnet, carnet -> codeTitre.equals(carnet.getCodeTitre())); } // Additional methods for other search criteria }
このアプローチでは、検索ロジックを一元化し、さまざまなオブジェクト タイプや検索プロパティ間で簡単に再利用できます。
以上がcodeIsin プロパティによって ArrayList 内の Carnet オブジェクトを効率的に検索する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。