3

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

我想将这些值与自己进行比较,而不将任何内容与自身进行比较,也不将相同的两个值进行两次比较......

我该怎么做?

现在我有以下

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

但这并不能消除首先将 A 与 B 进行比较,然后将 B 与 A 进行比较的情况......

有任何想法吗?

提前致谢..

4

2 回答 2

7

听起来您可能只想按索引进行:

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)) {
            ...
        }
    }
}
于 2013-02-28T20:13:24.023 回答
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))
    {
        // ...
    }
}
于 2013-02-28T20:14:53.120 回答