当前位置: 首页 > 知识库问答 >
问题:

Java ArrayList-我如何判断两个列表是否相等,顺序并不重要?

拓拔烨赫
2023-03-14

我有两个ArrayList类型的Answer(自制类)。

我想比较一下这两张单子,看看它们的内容是否相同,但顺序不重要。

//These should be equal.
ArrayList<String> listA = {"a", "b", "c"}
ArrayList<String> listB = {"b", "c", "a"}

共有1个答案

嵇弘新
2023-03-14

您可以使用collections.sort()对这两个列表进行排序,然后使用equals方法。一个稍微好一点的解决方案是在排序之前先检查它们是否长度相同,如果不是,那么它们就不相等,然后排序,然后使用相等。例如,如果您有两个字符串列表,它将如下所示:

public  boolean equalLists(List<String> one, List<String> two){     
    if (one == null && two == null){
        return true;
    }

    if((one == null && two != null) 
      || one != null && two == null
      || one.size() != two.size()){
        return false;
    }

    //to avoid messing the order of the lists we will use a copy
    //as noted in comments by A. R. S.
    one = new ArrayList<String>(one); 
    two = new ArrayList<String>(two);   

    Collections.sort(one);
    Collections.sort(two);      
    return one.equals(two);
}
 类似资料:
  • 本文向大家介绍请问如何判断两个链表是否相交?相关面试题,主要包含被问及请问如何判断两个链表是否相交?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 从头遍历两个链表。创建两个栈,第一个栈存储第一个链表的节点,第二个栈存储第二个链表的节点。每遍历到一个节点时,就将该节点入栈。两个链表都入栈结束后。则通过top判断栈顶的节点是否相等即可判断两个单链表是否相交。因为我们知道,若两个链表相交,则从

  • 本文向大家介绍如何判断两个对象相等?相关面试题,主要包含被问及如何判断两个对象相等?时的应答技巧和注意事项,需要的朋友参考一下 提供另一种写法: 当然JSON.stringify(obj)==JSON.stringify(obj)执行速度是最快的

  • 每个扇区可以表示为(x,y,r,a,d),其中x,y是位置,r是半径,d是方向,a是角度。给定两个圆形扇区的这些信息,如何确定它们是否相互重叠?有没有什么高效的算法来解决它?谢谢!

  • 假设您有两个相同的对象(意味着它们分别具有相同的属性和相同的值)。 你如何测试平等性? 例

  • 本文向大家介绍jquery判断输入密码两次是否相等,包括了jquery判断输入密码两次是否相等的使用技巧和注意事项,需要的朋友参考一下 Jquery easyui是一个非常好的ui框架,但是表单验证中没有最常用的判断两个输出框中值相等的验证,所以我做了下扩展。 使用示例: 将validType属性指定为equalTo['#password']即可。 当然使用这个小插件,必须要先引用jquery e

  • 本文向大家介绍判断JavaScript中的两个变量是否相等的操作符,包括了判断JavaScript中的两个变量是否相等的操作符的使用技巧和注意事项,需要的朋友参考一下 1、为什么要判断? 可能有些同学看到这个标题就会产生疑惑,为什么我们要判断JavaScript中的两个变量是否相等,JavaScript不是已经提供了双等号“==”以及三等号“===”给我们使用了吗? 其实,JavaScript虽然