如何在Java中的每个第x项之后将项添加到列表中

时间:2017-11-08 08:13:15

标签: java list loops arraylist listiterator

想知道实现以下目标的最优雅方式是什么:

“在列表中的每个第x项后添加项目”。

我有这个有效,但对我来说看起来很难看:

ListIterator<Something> it = items.listIterator();
    int i = 0;
    int breakPoint = 3;
    while(it.hasNext()) {
        it.next();
        i++;
        if(i == breakPoint ) {
            it.add(new Something()....);
            i = 0;
        }
    }

我更喜欢这样做而不使用外部库等。任何更优雅的方式也是可读的而不是依靠技巧?

1 个答案:

答案 0 :(得分:4)

您不需要迭代器,请使用void add(int index, E element)

for (int i = 3; i < items.size(); i+=3) {
    items.add (i++, new Something());
}

这将首先在索引3处添加一个元素。注意索引3处的原始元素将移动到索引4,这就是我在循环中有i++的原因(因为下一个元素应该添加在指数7,而非6)。