JAVA IteratorからListへの操作


ListからIteratorに移行するのは簡単です。JDK自体はサポートします。逆の実現方式は以下の通りです。
1.Apple Common Collectionを使う
2.自分で実現する方法の転換
3.Guaの転換を実現する
方式1:

#Apache Commons Collections:
import org.apache.commons.collections.IteratorUtils;
Iterator<Element> myIterator = //some iterator
List<Element> myList=IteratorUtils.toList(myIterator);  
方式2:
それとも自分で切り替えますか

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);
補足:配列とList、アレリイナイトは互いに変換して、ディズエターIteratorのいくつかの用法
一、配列をListまたはArayListに変換する
1.Stringタイプ配列をArayListに変換する

public void test(){
    String[] str = {"first","second","third"};
    ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(str));
  }
asList(T):指定された配列によってサポートされる固定サイズのリストを返します。
2.intタイプ配列をListに変換する

public void test(){
    int[] nums = {5,6,8,4,7,3};
    List<Integer> list = Arrays.stream(nums).boxed().collect(Collectors.toList());
  }
Arays.streamはint[]をInt Streamに変換する。
IntStream.boxed()を使って箱詰めし、IntStreamをStreamに変換する。
Stream.comをListに変換し、Listを得る。
二、Listを配列に変換する
toAray()方法

public void test(){
    List<String> list = new ArrayList<String>();
    list.add("first");
    list.add("second");
    String[] str1 = list.toArray(new String[list.size()]);
  }
三、IteratorはListを遍歴します。

public void test(){
    List<String> list = new ArrayList<String>();
    list.add("first");
    list.add("second");
    for(Iterator<String> i = list.iterator(); i.hasNext();){
      String str = i.next();
      System.out.println(str);
    }
  }
has Next():反復がより多くの要素を持つ場合、trueに戻ります。Listが要素があるかどうかを判定するために、ある場合はtrueに戻り、反復を続けます。
next():反復の次の要素を返します。要素を取得するために使用します。
以上は個人の経験ですので、参考にしていただければと思います。間違いがあったり、完全に考えていないところがあれば、教えてください。