0
嗨,我想从两个字符串列表中获取公共值...列表A具有通过查询Excel数据库获取的值,列表B具有通过查询SQL数据库获取的值。我想从A和B中获得共同的价值,因为我使用了retainAll集合。但它不是印刷普通的价值。而是它给我[]。请帮我解决这个问题。除了使用retainAll以外,如何获得共同的值。请纠正我的代码片段。retainAll不打印值
//connecting excel database and storing its values
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:spreadsheetdb","","");
out.println("Excel Database connected" +"<br>");
Statement stmt=conn.createStatement();
String excelquery="Select * from [Sheet1$]";
ResultSet excelvalues= stmt.executeQuery(excelquery);
List A= new ArrayList();
while(excelvalues.next()){
A.add(excelvalues.getString("name"));}
//connection sql Db and storing its values
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connection = DriverManager.getConnection("jdbc:odbc:copyknowledgebase","sa","sqladmin");
out.println("<br>"+"MSSQL connected " +"<br>")
Statement statement=connection.createStatement();
String conceptquery="Select * from dbo.conc";
ResultSet conceptdetails=statement.executeQuery(conceptquery);
Timestamp ts = new Timestamp(new java.util.Date().getTime());
List B = new ArrayList();
while(conceptdetails.next()){
B.add(conceptdetails.getString("Cname"));
}
B.retainAll (A);
out.println(B);
您确定您的名单有您在调用retainAll之前所期望的数据。如果您事先打印出他们的价值会发生什么。 – n00begon
是的,我有两个列表中的共同元素。 – user1193904
如果retainAll对于找到收集的常见元素很有帮助,我不太确定。例如,如果列表A = {a,b,b,c}和B = {a,a,b,d} A.retainAll(B)= {a,b,b}但B在里面只有一个'b' 。保留只删除不在其他集合中的元素。 – Pshemo