0

Cname、cnamedb、Pname という 3 つの文字列リストがあります。これらの 3 つのリストには、SQL データベースのクエリによって取得された結果があります。cname および Pname の結果は、Excel データベースのクエリから取得されます。cnamedb の結果は、SQL データベースのクエリから取得されています。

私はこのように宣言して配列に格納しました。

 List Cname = new  ArrayList();
 List Pname =new ArrayList();
 List cnamedb=new  ArrayList();

  Cname.add(rs.getString("Cname"));
  Pname.add(rs.getString("Pname"));
  cnamedb.add(res.getString("Cname"));

私はこのようにしてみました

        boolean hasCommonName = Cname.retainAll(Cnamedb);
         if(hasCommonName){
          out.println(Cname+"<br>");
         out.println(hasCommonName);
      }
       boolean haspname=Pname.retainAll(Cnamedb);
      if(haspname){
     out.println(haspname);
     }

これは、最初のifステートメントに対して真の答えを与えているだけですが、リスト要素を出力していません。2 番目の if ステートメントでは結果が得られません。

データベースと Excel に存在する共通要素を見つける必要があります。まず、Cname と Cnamedb から共通要素を取得し、次に Pname と Cnamedb から共通要素を取得する必要があります。共通要素を取得するにはどうすればよいですか。コード スニペットを提供してください。

4

1 に答える 1

0

以下のスニペットは私にとってはうまくいきました。

    List<String> commonToCnameAndCnamedb = new ArrayList<String>(Cname);

    List<String> commonToPnameAndCnamedb = new ArrayList<String>(Pname);

    boolean hasCommonName = commonToCnameAndCnamedb.retainAll(cnamedb);
    if (hasCommonName) {
        System.out.println(commonToCnameAndCnamedb + "<br>");
        System.out.println(hasCommonName);
    }
    boolean haspname = commonToPnameAndCnamedb.retainAll(cnamedb);
    if (haspname) {
        System.out.println(commonToPnameAndCnamedb + "<br>");
        System.out.println(haspname);
    }
于 2012-04-19T09:26:52.450 に答える