您将结果存储在数组列表中,这是通过查询java中的不同数据库获得的。我需要比较这个数组列表以获得公共行
List name = new ArrayList();
name.add(Spreadsheets.getString("Name"));
List namedb = new ArrayList();
namedb .add(rs.getString("eName"))
在c ++中我们使用strcmp进行比较。但在java中如何比较这个arraylist,它应该返回常见的行。或者我如何应用二进制搜索算法将这些算法搜索到arraylist?
答案 0 :(得分:1)
使用列表的retainAll
方法。
List<String> names = new ArrayList<String>();
List<String> namesDB = new ArrayList<String>();
// Get some names ??
names.add(Spreadsheets.getString("Name"));
boolean hasCommonNames = namesDB.retainAll( names );
// The namesDB will only contain the common names.
if( hasCommonNames ) {
// Do something with the common names
}
答案 1 :(得分:0)
您可以使用HashMap存储第一组结果,然后迭代遍历第二个列表,在迭代检查期间HashMap中是否存在该值,如果存在,则将其推送到另一个List C,结尾处在迭代中,List C将具有公共元素
答案 2 :(得分:0)
ArrayList<Integer> a3 = new ArrayList<Integer>();
for (String a : a1)
a3.add(a2.contains(a) ? 1 : 0);
现在检查a3的内容。如果all为1,则两个列表相同......