如何从字符串arraylist中获取常用元素

时间:2012-04-19 08:39:32

标签: java

我有3个名为Cname,cnamedb,Pname的字符串列表。这三个列表有一个结果,通过查询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获取。我如何获得常见元素。请为我提供代码片段。

1 个答案:

答案 0 :(得分: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);
    }