将arrayList与自身进行比较

时间:2013-02-28 20:11:21

标签: java arrays arraylist

如果我有arrayList(为简单起见),其中包含A,B,C

我希望将这些值与自己进行比较而不将任何内容与自身进行比较,而不是将两个值相比较两次......

我该怎么做?

现在我有以下

for(Double db : arrayList)
{
    for(Double db2 : arrayList)
    {
        if(db2 != db)
        {
            //compare
        }
    }
}

但这并没有消除将第一个A与B进行比较然后将B与A进行比较的情况......

任何想法?

提前感谢..

2 个答案:

答案 0 :(得分:7)

听起来你可能只想通过 index 来代替:

for (int i = 0; i < arrayList.size() - 1; i++) {
    Double db = arrayList.get(i);
    for (int j = i + 1; j < arrayList.size(); j++) {
        Double db2 = arrayList.get(j);

        // Don't use == unless you *really* want reference identity
        if (!db2.equals(db)) {
            ...
        }
    }
}

答案 1 :(得分:2)

使用subList(int fromIndex, int toIndex)

List<Double> arrayList = ...;
int length = arrayList.size();

for(int i = 0; i < length - 1; i++)
{
    Double db1 = arrayList.get(i);
    for(Double db2 : arrayList.subList(i + 1, length))
    {
        // ...
    }
}