Java 将arrayList与自身进行比较
如果我有一个Java 将arrayList与自身进行比较,java,arrays,arraylist,Java,Arrays,Arraylist,如果我有一个arrayList(为了简单起见),它包含A、B、C 我想将这些值与它们自己进行比较,而不将任何东西与它们自己进行比较,也不将相同的两个值进行两次比较 我该怎么做 现在我有以下几点 for(Double db : arrayList) { for(Double db2 : arrayList) { if(db2 != db) { //compare } } } 但这并不能排除这样的情况,
arrayList
(为了简单起见),它包含A、B、C
我想将这些值与它们自己进行比较,而不将任何东西与它们自己进行比较,也不将相同的两个值进行两次比较
我该怎么做
现在我有以下几点
for(Double db : arrayList)
{
for(Double db2 : arrayList)
{
if(db2 != db)
{
//compare
}
}
}
但这并不能排除这样的情况,即先将A与B进行比较,然后再将B与A进行比较
有什么想法吗
提前谢谢 听起来您可能只是想按索引进行:
for(int i=0;i
使用:
List arrayList=。。。;
int length=arrayList.size();
对于(int i=0;i
请注意,您可以在此处将i
的边界减少一个,因为最后一个元素没有任何可比性。(子列表将是空的。)@JonSkeet不arrayList。子列表(长度,长度)
返回一个空列表,因此它不会进入内部循环?是的,但我的观点是,你知道它会这样做-那么为什么还要进入外部循环,获取最后一个元素,然后创建空子列表(视图)?
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)) {
...
}
}
}
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))
{
// ...
}
}