2012-02-16 11 views
0

こんにちは、javaの別のデータベースを照会して得られた配列リストに結果を格納しています。この配列リストを比較して共通の行を取得する必要がありますarraylistの比較

 List name = new ArrayList(); 
     name.add(Spreadsheets.getString("Name")); 

    List namedb = new ArrayList(); 
    namedb .add(rs.getString("eName")) 

C++ではstrcmpを使用して比較します。しかし、javaではどのようにこのarraylistを比較し、共通の行を返す必要があります。どのように私はarraylistにこれらを検索するバイナリ検索アルゴリズムを適用するのですか?

+0

私は、Triztianによって以下に示すnamesDB.retainAll(names)メソッドを提案しますが、配列のサイズによっては効率が非常に悪くなる可能性があります。名前が一意の場合は、ArrayList の代わりにSet を使用します。 – brettw

答えて

1

リストのretainAllメソッドを使用します。

List<String> names = new ArrayList<String>(); 
List<String> namesDB = new ArrayList<String>(); 

// Get some names ?? 
names.add(Spreadsheets.getString("Name")); 

boolean hasCommonNames = namesDB.retainAll(names); 

// The namesDB will only contain the common names. 
if(hasCommonNames) { 
    // Do something with the common names 
} 
0

あなたは、結果の最初のセットを格納するHashMapを使用し、それが存在する場合、その値は、HashMapの中に存在する場合は、繰り返しチェック中に、第二のリストを反復処理し、別のリストCにそれをプッシュすることができます反復の最後にリストCは共通の要素を持ちます

0
ArrayList<Integer> a3 = new ArrayList<Integer>();    
for (String a : a1) 
    a3.add(a2.contains(a) ? 1 : 0); 

a3の内容を確認します。すべてが1の場合、2つのリストは同じです...

+0

私は文字列の結果が必要 – user1063145

+0

場合は、例で入力と出力を提供する... –

関連する問題