Как выполнить итерацию для каждого элемента e2 после элемента e1 в списке? - PullRequest
0 голосов
/ 29 декабря 2018

Я хотел бы повторить e2, который является элементом после каждого элемента 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 голосов
/ 29 декабря 2018

Примерно так:

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 и продолжается до самого конца.

...