0

我有 3 个名为 Cname、cnamedb、Pname 的字符串列表。这3个列表有一个通过查询SQL database.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 语句的答案,但不打印列表元素。对于第二个 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 回答