【问题标题】:How to iterate for each e2 element after e1 element in List?如何在List中的e1元素之后迭代每个e2元素?
【发布时间】:2018-12-29 05:10:26
【问题描述】:

我想迭代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)
        }    
    }
}

【问题讨论】:

  • 究竟是什么阻止了您执行通常的int j = i + 1; j &lt; eList.size(); j++ 并省略if?
  • ...甚至无法为这个找到一个好的副本。 This maybe?.

标签: java arraylist iteration


【解决方案1】:

下面的内容怎么样:

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 循环的索引之后开始并运行到最后。

【讨论】:

    猜你喜欢
    • 2011-02-10
    • 1970-01-01
    • 2012-12-22
    • 2021-10-10
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 2020-02-04
    • 1970-01-01
    相关资源
    最近更新 更多