用 Java 将迭代器转换为列表
原文:https://www . geesforgeks . org/convert-a-iterator-a-list-in-Java/
给定一个迭代器,任务是将其转换为 Java 中的列表。
示例:
Input: Iterator = {1, 2, 3, 4, 5}
Output: {1, 2, 3, 4, 5}
Input: Iterator = {'G', 'e', 'e', 'k', 's'}
Output: {'G', 'e', 'e', 'k', 's'}
以下是各种方法:
-
Naive Approach:
- 获取迭代器。
- 创建一个空列表。
- 使用 forEachRemaining()方法将迭代器的每个元素添加到列表中。
- 退回清单。
下面是上述方法的实现:
```java // Java program to get a List // from a given Iterator
import java.util.*;
class GFG {
// Function to get the List public static List getListFromIterator(Iterator iterator) {
// Create an empty list List list = new ArrayList<>();
// Add each element of iterator to the List iterator.forEachRemaining(list::add);
// Return the List return list; }
// Driver code public static void main(String[] args) {
// Get the Iterator Iterator iterator = Arrays.asList(1, 2, 3, 4, 5) .iterator();
// Get the List from the Iterator List list = getListFromIterator(iterator);
// Print the list System.out.println(list); } } ```
Output:
```java [1, 2, 3, 4, 5]
```
-
Using Iterable as intermediate:
- 获取迭代器。
- 使用 lambda 表达式将迭代器转换为可迭代的。
- 使用流将可列表转换为列表。
- 退回清单。
下面是上述方法的实现:
```java // Java program to get a List // from a given Iterator
import java.util.*; import java.util.stream.Collectors; import java.util.stream.StreamSupport;
class GFG {
// Function to get the List public static List getListFromIterator(Iterator iterator) {
// Convert iterator to iterable Iterable iterable = () -> iterator;
// Create a List from the Iterable List list = StreamSupport .stream(iterable.spliterator(), false) .collect(Collectors.toList());
// Return the List return list; }
// Driver code public static void main(String[] args) {
// Get the Iterator Iterator iterator = Arrays.asList(1, 2, 3, 4, 5) .iterator();
// Get the List from the Iterator List list = getListFromIterator(iterator);
// Print the list System.out.println(list); } } ```
Output:
```java [1, 2, 3, 4, 5]
```
版权属于:月萌API www.moonapi.com,转载请注明出处