ホームページ > Java > &#&チュートリアル > 特定のプロパティに基づいて ArrayList からオブジェクトを効率的に取得する方法

特定のプロパティに基づいて ArrayList からオブジェクトを効率的に取得する方法

Patricia Arquette
リリース: 2024-12-04 02:13:09
オリジナル
144 人が閲覧しました

How to Efficiently Retrieve Objects from ArrayLists Based on Specific Properties?

プロパティに基づいて 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート