Java中的集合
Java LinkedList指南
Java ArrayList指南
Java中不可變的ArrayList
CopyOnWriteArrayList指南
JavaJava中的多維ArrayList
將迭代器轉換為列表
Java –從列表中獲取隨機項目/元素
用Java對列表進行分區
從Java列表中刪除所有Null
從Java中的列表中刪除所有重複項
檢查Java中兩個列表是否相等
如何使用Java在列表中查找元素
Java列表UnsupportedOperationException
將列表複製到Java中的另一個列表
從列表中刪除所有出現的特定值
將多個元素添加到Java ArrayList
從列表中刪除第一個元素
在Java中迭代列表的方法
Java中兩個列表的交集
如何計算Arraylist中的重複元素
查找Java中兩個列表之間的差異
將迭代器轉換為列表
1.概述
在這個簡短的教程中,我們將學習如何在Java中將Iterator轉換為List 。我們將使用while循環,Java 8和一些通用庫介紹一些示例。
對於所有示例,我們將使用帶有Integer的Iterator :
Iterator<Integer> iterator = Arrays.asList(1, 2, 3).iterator();
2.使用While循環
讓我們從Java 8之前傳統上使用的方法開始。我們將使用**while循環**將Iterator轉換為List :
List<Integer> actualList = new ArrayList<Integer>();
 while (iterator.hasNext()) {
 actualList.add(iterator.next());
 }
 assertThat(actualList, containsInAnyOrder(1, 2, 3));
3.使用Java 8 Iterator.forEachRemaining
在Java 8和更高版本中,我們可以使用Iterator的forEachRemaining()方法來構建List 。我們將傳遞List接口的add()方法作為方法參考:
List<Integer> actualList = new ArrayList<Integer>();
 iterator.forEachRemaining(actualList::add);
 assertThat(actualList, containsInAnyOrder(1, 2, 3));
4.使用Java 8 Streams API
接下來,我們將使用Java 8 Streams API將Iterator轉換為List 。為了使用Stream API,我們需要首先將Iterator轉換為Iterable 。我們可以使用Java 8 Lambda表達式來做到這一點:
Iterable<Integer> iterable = () -> iterator;
現在,我們可以使用StreamSupport類的stream()和collect()方法來構建List :
List<Integer> actualList = StreamSupport
 .stream(iterable.spliterator(), false)
 .collect(Collectors.toList());
 assertThat(actualList, containsInAnyOrder(1, 2, 3));5.使用番石榴
Google的Guava庫**提供了創建可變和不可變List的選項,**因此我們將介紹這兩種方法。
首先,使用ImmutableList.copyOf()方法創建一個不可變List :
List<Integer> actualList = ImmutableList.copyOf(iterator);
 assertThat(actualList, containsInAnyOrder(1, 2, 3));現在,讓我們使用Lists.newArrayList()方法創建一個可變List :
List<Integer> actualList = Lists.newArrayList(iterator);
 assertThat(actualList, containsInAnyOrder(1, 2, 3));6.使用Apache Commons
**Apache Commons Collections庫提供了用於List.選項List.**我們將使用IteratorUtils進行轉換:
List<Integer> actualList = IteratorUtils.toList(iterator);
 assertThat(actualList, containsInAnyOrder(1, 2, 3));7.結論
在本文中,我們介紹了一些將Iterator轉換為List選項。儘管還有其他幾種方法可以實現此目的,但我們介紹了幾種常用的選項。
所有這些示例和代碼段的實現都可以在GitHub上找到。