我们如何在类似Iterator <List <String >>的Iterator中存储List <String>值?

时间:2019-08-06 12:25:54

标签: java list iterator

我需要将来自循环的值存储在Iterator<List<String>>中。 我尝试了很多方法,但找不到任何方法。 为您提供代码。

ListIterator<List<String>> itrr = null;
        for (int i = startLoop; i <= endLoop; i++) {
            List<String> listOfString = new ArrayList<>();
            for (int j = startInnerLoop; j <= endInnerLoop; j++) {
                // for each cell we have to derive the row value as A1:A1
                String address = Number2Column.execute(j) + i;
                address += Constants.COLONSPLITTER + address;
                listOfString.add(executor.getSingleCell(false, address).get().toString());
            }
            itrr.add(listOfString);
        }

为了方便尝试,在这里我使用ListIterator添加了Collection,但是可以将其强制转换为 Iterator<List<String>>

1 个答案:

答案 0 :(得分:2)

迭代器不存储数据。它是基础集合的一种表示形式,可让您对其进行迭代。

只需将您的字符串列表存储在另一个列表List<List<String>>中。 List类实现了Iterable接口,这意味着您可以在任何列表上获得迭代器。

List<List<String>> itrr = new ArrayList<>();
    for (int i = startLoop; i <= endLoop; i++) {
        List<String> listOfString = new ArrayList<>();
        for (int j = startInnerLoop; j <= endInnerLoop; j++) {
            ...
            listOfString.add(...);
        }
        itrr.add(listOfString);
}
Iterator<List<String>> iter = ittr.iterator();

如果需要,您甚至可以获取ListIterator

ListIterator<List<String>> listIter = ittr.listIterator();