arraylist的比较

时间:2012-02-16 04:29:21

标签: java

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

      List name = new  ArrayList();
      name.add(Spreadsheets.getString("Name"));

     List namedb = new  ArrayList();
     namedb .add(rs.getString("eName"))

在c ++中我们使用strcmp进行比较。但在java中如何比较这个arraylist,它应该返回常见的行。或者我如何应用二进制搜索算法将这些算法搜索到arraylist?

3 个答案:

答案 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,则两个列表相同......