0

2 つの配列で重複する要素を見つける簡単なプログラムを作成しようとしています。重複する要素が存在する場合は True を返し、それ以外の場合は False を返します。

これだけのコードを書きましたが、常に false を返します。

 List<String> list1= new ArrayList<String>();

  list1.add("abc");
  list1.add("xyz");
  list1.add("rst");

 List<String> list2= new ArrayList<String>();

  list2.add("rst");
  list2.add("would");
  list2.add("why");

 Set<String> set1 = new HashSet<String>(list1);
 Set<String> set2 = new HashSet<String>(list2);

 if(set1.contains(set2)){
      System.out.println("exists");
 }else
      System.out.println("doesn't exists");

上記のコードは「存在する」と出力する必要があります。つまり、TRUE を返しますが、そうではありません。ここで何かがひどく欠けていますか?

4

4 に答える 4

0

cehck out set conatins() API

コードは、の各要素set2が使用可能かどうかをチェックするのではなく、set2オブジェクトが使用可能かどうかをチェックします。

このようにコードを変更すると、正常に実行されます。

     set1.addAll(set2);
     if(set1.containsAll(set2)){
          System.out.println("exists");
     }else
          System.out.println("doesn't exists");

内の特定のstringオブジェクトかどうかを確認するset2には、解決策の 1 つとして、それを反復処理して個別に確認することができます。

于 2013-05-07T06:58:27.357 に答える