3

私がarrayList(簡単にするために)を含む場合A,B,C

そして、私はこれらの値をそれ自体と何も比較せずに、そして同じ2つの値を2回比較せずにそれら自体と比較したいと思います...

どうすればいいですか?

今私は以下を持っています

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 に答える