どちらも整数値を含む2 つのArrayListがあります。私の目的は、これら 2 つのリストを比較して同一/共通/重複値を取得することです。言い換えると (SQL 用語で)、2 つのリストのINTERSECT結果、つまり両方のリストに表示される値が必要です。
例:
ArrayList<Integer> list1 = new ArrayList<Integer>();
list1.add(100);
list1.add(200);
list1.add(300);
list1.add(400);
list1.add(500);
ArrayList<Integer> list2 = new ArrayList<Integer>();
list2.add(300);
list2.add(600);
私が考えることができる実装/ソリューションの1つの種類は、次のようなリストの1つをループすることです:
ArrayList<Integer> intersectList = new ArrayList<Integer>();
for (Integer intValue : list1)
{
if(list2.contains(intValue))
intersectList.add(intValue);
}
この場合、 には、追加される整数項目がintersectList
1 つだけ含まれます。つまり、両方のリストに表示されます。300
私の質問は、このロジックを実装するためのより良い/最速/効率的な方法はありますか? Apache Commonsライブラリで利用できるオプションはありますか? その他のアイデア/提案/コメントは大歓迎です。
注:説明のために、ここでは 5 つのアイテムと、リストに追加される 2 つのアイテムを示しています。私のリアルタイム実装では、各リストに 1000 を超える要素があります。したがって、パフォーマンスも考慮すべき重要な要素です。