JAVA IteratorからListへの操作
ListからIteratorに移行するのは簡単です。JDK自体はサポートします。逆の実現方式は以下の通りです。
1.Apple Common Collectionを使う
2.自分で実現する方法の転換
3.Guaの転換を実現する
方式1:
それとも自分で切り替えますか
一、配列をListまたはArayListに変換する
1.Stringタイプ配列をArayListに変換する
2.intタイプ配列をListに変換する
IntStream.boxed()を使って箱詰めし、IntStreamをStreamに変換する。
Stream.comをListに変換し、Listを得る。
二、Listを配列に変換する
toAray()方法
next():反復の次の要素を返します。要素を取得するために使用します。
以上は個人の経験ですので、参考にしていただければと思います。間違いがあったり、完全に考えていないところがあれば、教えてください。
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():反復の次の要素を返します。要素を取得するために使用します。
以上は個人の経験ですので、参考にしていただければと思います。間違いがあったり、完全に考えていないところがあれば、教えてください。