我有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获取。我如何获得常见元素。请为我提供代码片段。
答案 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);
}