Java中将Set转换为List的程序
Java Set 是Java.util 包的一部分,扩展了Java.util.Collection 接口。它不允许使用重复元素,并且最多只能容纳一个空元素。
List 是 Collection 的子接口。它是可以存储重复值的对象的有序集合。由于 List 保留了插入顺序,它允许元素的位置访问和插入。 List 接口由 ArrayList、LinkedList、Vector 和 Stack 类实现。
以下是在Java中将 Set 转换为 List 的方法。
- 蛮力或朴素方法:此方法包括创建一个空列表并将集合的每个元素添加到其中。
算法:
- 获取要转换的集合。
- 创建一个空列表
- 将集合中的每个元素推入列表
- 返回形成的列表
程序:
// Java Program to convert // Set to List in Java 8 import java.util.*; import java.util.stream.*; class GFG { // Generic function to convert set to list public static
List convertSetToList(Set set) { // create an empty list List list = new ArrayList<>(); // push each element in the set into the list for (T t : set) list.add(t); // return the list return list; } public static void main(String args[]) { // Create a Set using HashSet Set hash_Set = new HashSet (); // Add elements to set hash_Set.add("Geeks"); hash_Set.add("For"); hash_Set.add("Geeks"); hash_Set.add("Example"); hash_Set.add("Set"); // Print the Set System.out.println("Set: " + hash_Set); // construct a new List from Set List list = convertSetToList(hash_Set); // Print the List System.out.println("List: " + list); } } 输出:Set: [Set, Example, Geeks, For] List: [Set, Example, Geeks, For]
- 在构造函数的帮助下: Java中的集合有一个构造函数,可以在其中传递直接集合以从中创建一个 List。
算法:
- 获取要转换的集合。
- 通过将集合作为参数传递给构造函数来创建列表。
- 返回形成的列表
程序:
// Java Program to convert // Set to List in Java 8 import java.util.*; import java.util.stream.*; class GFG { // Generic function to convert set to list public static
List convertSetToList(Set set) { // create a list from Set List list = new ArrayList<>(set); // return the list return list; } public static void main(String args[]) { // Create a Set using HashSet Set hash_Set = new HashSet (); // Add elements to set hash_Set.add("Geeks"); hash_Set.add("For"); hash_Set.add("Geeks"); hash_Set.add("Example"); hash_Set.add("Set"); // Print the Set System.out.println("Set: " + hash_Set); // construct a new List from Set List list = convertSetToList(hash_Set); // Print the List System.out.println("List: " + list); } } 输出:Set: [Set, Example, Geeks, For] List: [Set, Example, Geeks, For]
- 使用Java 8 Stream :在Java 8 中,可以使用 Stream 将集合转换为列表,方法是使用 Set.stream() 将集合转换为顺序流,并使用收集器将输入元素收集到新列表中。
算法:
- 获取要转换的HashMap。
- 从集合创建流
- 将集合转换为列表并收集它
- 返回收集到的List
程序:
// Java Program to convert // HashMap to TreeMap in Java 8 import java.util.*; import java.util.stream.*; class GFG { // Generic function to convert set to list public static
List convertSetToList(Set set) { // create a list from Set return set // Create stream from the Set .stream() // Convert the set to list and collect it .collect(Collectors.toList()); } public static void main(String args[]) { // Create a Set using HashSet Set hash_Set = new HashSet (); // Add elements to set hash_Set.add("Geeks"); hash_Set.add("For"); hash_Set.add("Geeks"); hash_Set.add("Example"); hash_Set.add("Set"); // Print the Set System.out.println("Set: " + hash_Set); // construct a new List from Set List list = convertSetToList(hash_Set); // Print the List System.out.println("List: " + list); } } 输出:Set: [Set, Example, Geeks, For] List: [Set, Example, Geeks, For]
- 使用 Guava 库 List.newArrayList(set) : Lists.newArrayList(set) 创建一个可变的 ArrayList 实例,其中包含指定集合的元素。
算法:
- 获取要转换的集合。
- 通过将集合作为参数传递给 Guava 库的此函数,使用 Lists.newArrayList() 创建一个新列表
- 返回形成的列表
程序:
// Java Program to convert // HashMap to TreeMap in Java 8 import java.util.*; import java.util.stream.*; class GFG { // Generic function to convert set to list public static
List convertSetToList(Set set) { // create a list from Set return Lists.newArrayList(set); } public static void main(String args[]) { // Create a Set using HashSet Set hash_Set = new HashSet (); // Add elements to set hash_Set.add("Geeks"); hash_Set.add("For"); hash_Set.add("Geeks"); hash_Set.add("Example"); hash_Set.add("Set"); // Print the Set System.out.println("Set: " + hash_Set); // construct a new List from Set List list = convertSetToList(hash_Set); // Print the List System.out.println("List: " + list); } } 输出:
Set: [Set, Example, Geeks, For] List: [Set, Example, Geeks, For]