List转到Iterator容易,JDK本身就支持,反过来的实现方式如下:
1.使用Apache Common Collections
2.自己实现的方法转换
3.Guaa实现转换
- 方式1:
- #Apache Commons Collections:
- import org.apache.commons.collections.IteratorUtils;
- Iterator<Element> myIterator = //some iterator
- List<Element> myList=IteratorUtils.toList(myIterator);
- 方式二:
- 或者自己转换
- public static <T> List<T> copyIterator(Iterator<T> iter) {
- List<T> copy = new ArrayList<T>();
- while (iter.hasNext())
- copy.add(iter.next());
- return copy;
- }
- 使用方式:
- List<String> list = Arrays.asList("1", "2", "3");
- Iterator<String> iter = list.iterator();
- List<String> copy = copyIterator(iter);
- 方式3:
- #Guava
- import com.google.common.collect.Lists;
- Iterator<Element> myIterator = //some iterator
- List<Element> myList = Lists.newArrayList(myIterator);