Java arraylist的比较
hi am将结果存储在数组列表中,数组列表是通过在java中查询不同的数据库获得的。我需要比较这个数组列表以获得公共行Java arraylist的比较,java,Java,hi am将结果存储在数组列表中,数组列表是通过在java中查询不同的数据库获得的。我需要比较这个数组列表以获得公共行 List name = new ArrayList(); name.add(Spreadsheets.getString("Name")); List namedb = new ArrayList(); namedb .add(rs.getString("eName")) 在C++中,我们使用STRCMP进行比较。但是在jav
List name = new ArrayList();
name.add(Spreadsheets.getString("Name"));
List namedb = new ArrayList();
namedb .add(rs.getString("eName"))
在C++中,我们使用STRCMP进行比较。但是在java中,我如何比较这个arraylist,它应该返回公共行。或者如何应用二进制搜索算法来搜索arraylist?使用列表的方法
List name=new ArrayList();
List namesDB=new ArrayList();
//有名字吗??
Name.add(电子表格.getString(“Name”));
布尔hasCommonNames=namesDB.retainal(名称);
//namesDB将只包含公共名称。
如果(有公共名称){
//用普通的名字做点什么
}
您可以使用HashMap存储第一组结果,然后遍历第二个列表,在迭代过程中检查HashMap中是否存在该值,如果存在,将其推入另一个列表C,在迭代结束时,列表C将具有公共元素ArrayList a3=new ArrayList();
ArrayList<Integer> a3 = new ArrayList<Integer>();
for (String a : a1)
a3.add(a2.contains(a) ? 1 : 0);
用于(字符串a:a1)
a3.添加(a2.包含(a)?1:0;
现在检查a3的内容。如果all为1,则两个列表是相同的…我建议使用Triztian下面显示的namesDB.retainal(names)方法,但请注意,根据阵列的大小,效率可能会非常低。如果名称是唯一的,我会使用集合而不是ArrayList。
ArrayList<Integer> a3 = new ArrayList<Integer>();
for (String a : a1)
a3.add(a2.contains(a) ? 1 : 0);