Java 比较整数集合

Java 比较整数集合,java,compare,Java,Compare,对于的实现,我正在寻找一种方法来比较Collection的两个实例。我已经通过创建一个整数表示(101==5)来比较布尔[],因此我将其缩小到比较两个集合 我该怎么做呢 简单地比较每个整数是行不通的,因为给定的collectionA={1,2};collectionB={2,1},下面的示例给出了cmp==0,而这些集合肯定是不同的 int cmp = 0; for(Integer a : collectionA) for(Integer b : collectionB) cmp +

对于的实现,我正在寻找一种方法来比较
Collection
的两个实例。我已经通过创建一个整数表示(101==5)来比较
布尔[]
,因此我将其缩小到比较两个
集合

我该怎么做呢

简单地比较每个整数是行不通的,因为给定的
collectionA={1,2};collectionB={2,1}
,下面的示例给出了
cmp==0
,而这些集合肯定是不同的

int cmp = 0;
for(Integer a : collectionA)
  for(Integer b : collectionB)
    cmp += Integer.compare(a, b);
我还有其他选择吗?我真的不在乎它们是如何排序的,只是它们是以一种组合的方式排序的。集合可能有不同的大小

编辑: 我要找的是
int compare()
,而不是
equals()
。我的应用程序的实际结构的一个更具体的例子如下

class MyArray implements Comparable<MyArray> {
    boolean[] array;

    int compareTo(MyArray another) {
        // This is implemented
    }
}

class MyCollection implements Comparable<MyCollection> {
    SortedSet<MyArray> collection;

    int compareTo(MyCollection another) {
        // Looking for this implementation
    }
}
类MyArray实现了可比较的{
布尔[]数组;
int compareTo(MyArray另一个){
//这是实现的
}
}
类MyCollection实现了可比较的{
分类集收集;
int比较(MyCollection另一个){
//正在寻找此实现
}
}
java collections类中内置的equals()方法已经为您完成了这项工作

如果两个集合的大小相同,并且一个集合中的每个元素在另一个集合中都有对应的元素,则返回true

列表
比较检查顺序,但如果使用
集合
,则它不关心顺序

列表

比较指定对象与此列表是否相等。当且仅当指定对象也是列表、两个列表的大小相同且两个列表中所有对应的元素对相等时,返回true。(如果(e1==null?e2==null:e1.equals(e2)),则两个元素e1和e2是相等的。)换句话说,如果两个列表以相同的顺序包含相同的元素,则将它们定义为相等。此定义确保equals方法在列表接口的不同实现中正常工作

设置

将指定对象与此集合进行相等性比较。如果指定的对象也是一个集合,两个集合的大小相同,并且指定集合的每个成员都包含在此集合中(或者等效地,此集合的每个成员都包含在此指定集合中),则返回true。此定义确保equals方法在set接口的不同实现中正常工作

java集合类中内置的equals()方法已经可以为您完成这项工作

如果两个集合的大小相同,并且一个集合中的每个元素在另一个集合中都有对应的元素,则返回true

列表
比较检查顺序,但如果使用
集合
,则它不关心顺序

列表

比较指定对象与此列表是否相等。当且仅当指定对象也是列表、两个列表的大小相同且两个列表中所有对应的元素对相等时,返回true。(如果(e1==null?e2==null:e1.equals(e2)),则两个元素e1和e2是相等的。)换句话说,如果两个列表以相同的顺序包含相同的元素,则将它们定义为相等。此定义确保equals方法在列表接口的不同实现中正常工作

设置

将指定对象与此集合进行相等性比较。如果指定的对象也是一个集合,两个集合的大小相同,并且指定集合的每个成员都包含在此集合中(或者等效地,此集合的每个成员都包含在此指定集合中),则返回true。此定义确保equals方法在set接口的不同实现中正常工作

java集合类中内置的equals()方法已经可以为您完成这项工作

如果两个集合的大小相同,并且一个集合中的每个元素在另一个集合中都有对应的元素,则返回true

列表
比较检查顺序,但如果使用
集合
,则它不关心顺序

列表

比较指定对象与此列表是否相等。当且仅当指定对象也是列表、两个列表的大小相同且两个列表中所有对应的元素对相等时,返回true。(如果(e1==null?e2==null:e1.equals(e2)),则两个元素e1和e2是相等的。)换句话说,如果两个列表以相同的顺序包含相同的元素,则将它们定义为相等。此定义确保equals方法在列表接口的不同实现中正常工作

设置

将指定对象与此集合进行相等性比较。如果指定的对象也是一个集合,两个集合的大小相同,并且指定集合的每个成员都包含在此集合中(或者等效地,此集合的每个成员都包含在此指定集合中),则返回true。此定义确保equals方法在set接口的不同实现中正常工作

java集合类中内置的equals()方法已经可以为您完成这项工作

如果两个集合的大小相同,并且一个集合中的每个元素在另一个集合中都有对应的元素,则返回true

列表
比较检查顺序,但如果使用
集合
,则它不关心顺序

列表

比较指定对象与此列表是否相等。当且仅当指定的对象也是一个列表、两个列表的大小相同且两个列表中所有对应的元素对都相等时,返回true
for(int i = 0; i < min(listA.size(), listB.size()); i++) {
    int diff = listA.get(i) - listB.get(i);
    if(diff != 0) return diff;
}
return listA.size() - listB.size();