Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java arraylist的比较_Java - Fatal编程技术网

Java arraylist的比较

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

hi am将结果存储在数组列表中,数组列表是通过在java中查询不同的数据库获得的。我需要比较这个数组列表以获得公共行

      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);