如果我有arrayList
(为简单起见),其中包含A,B,C
我希望将这些值与自己进行比较而不将任何内容与自身进行比较,而不是将两个值相比较两次......
我该怎么做?
现在我有以下
for(Double db : arrayList)
{
for(Double db2 : arrayList)
{
if(db2 != db)
{
//compare
}
}
}
但这并没有消除将第一个A与B进行比较然后将B与A进行比较的情况......
任何想法?
提前感谢..
答案 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))
{
// ...
}
}