如何在List中的e1元素之后为每个e2元素进行迭代?

时间:2018-12-29 05:10:26

标签: java arraylist iteration

我想迭代e2,它是List中每个元素e1之后的元素。

我正在寻找实现以下目的的干净正确的方法:

For each element e1 in eList:
    For each element e2 after e1 in eList;
        algorithm(e1, e2) 

我到目前为止所做的:

List<Element> eList = init(1, 2, 3, 4, 5, 6, 7, 8);
for (int i = 0; i < eList.size(); i++){
    for (int j = 0; j < eList.size(); j++){
        if (j > i){
            Element e1 = eList.get(i);
            Element e2 = eList.get(j); 
            algorithm(e1, e2)
        }    
    }
}

1 个答案:

答案 0 :(得分:0)

类似以下内容:

List<Element> eList = init(1, 2, 3, 4, 5, 6, 7, 8);
for (int i = 0; i < eList.size() - 1; i++) {
    Element e1 = eList.get(i);
    for (int j = i + 1; j < eList.size(); j++) {
        Element e2 = eList.get(j);
        algorithm(e1, e2);
    }
}

外部for循环运行直到倒数第二个元素,以确保始终有另一个元素出现。内部for循环从外部for循环的索引开始,一直到最后。