将每个项目与ArrayList中的每个其他项目进行比较

Jav*_*gFu 17 java sorting algorithm compare arraylist

我遇到的问题应该是一个非常简单的问题.

我需要将arrayList中的每个项目与列表中的其他项目进行比较,而不将项目与自身进行比较.它并不像调用equals()那样简单,它涉及一些我从下面的代码中省略的自定义逻辑.此外,不应以任何方式更改ArrayList.

我似乎遇到的问题是,一旦我进入第二个循环,我不知道我是否有另一个要比较的对象(因为它是一个可变大小的列表).

for(int i =0; i< list.size(); i++){ 
    //get first object to compare to
    String a = list.get(i).getA();

    Iterator itr = list.listIterator(i + 1 ); // I don't know if i + 1 is valid
    while(itr.hasNext()){
        // compare A to all remaining items on list
    }
}
Run Code Online (Sandbox Code Playgroud)

我想我可能会以错误的方式解决这个问题,我愿意接受有关如何做得更好的建议或提示.

Kal*_*see 35

for (int i = 0; i < list.size(); i++) {
  for (int j = i+1; j < list.size(); j++) {
    // compare list.get(i) and list.get(j)
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 这将进行比所需更多的比较,您将测试item1 == item3和item3 == item1 (3认同)
  • @Mike no,因为内部循环只接受外部循环中当前索引"后面"的元素. (2认同)
  • 我首先初始化 j = 0,然后修复它。 (2认同)