📜  Java中将Set转换为List的程序

📅  最后修改于: 2022-05-13 01:55:10.718000             🧑  作者: Mango

Java中将Set转换为List的程序

Java Set 是Java.util 包的一部分,扩展了Java.util.Collection 接口。它不允许使用重复元素,并且最多只能容纳一个空元素。

List 是 Collection 的子接口。它是可以存储重复值的对象的有序集合。由于 List 保留了插入顺序,它允许元素的位置访问和插入。 List 接口由 ArrayList、LinkedList、Vector 和 Stack 类实现。

以下是在Java中将 Set 转换为 List 的方法。

  1. 蛮力或朴素方法:此方法包括创建一个空列表并将集合的每个元素添加到其中。

    算法

    1. 获取要转换的集合。
    2. 创建一个空列表
    3. 将集合中的每个元素推入列表
    4. 返回形成的列表

    程序:

    // 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]
    
  2. 在构造函数的帮助下: Java中的集合有一个构造函数,可以在其中传递直接集合以从中创建一个 List。

    算法

    1. 获取要转换的集合。
    2. 通过将集合作为参数传递给构造函数来创建列表。
    3. 返回形成的列表

    程序:

    // 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]
    
  3. 使用Java 8 Stream :在Java 8 中,可以使用 Stream 将集合转换为列表,方法是使用 Set.stream() 将集合转换为顺序流,并使用收集器将输入元素收集到新列表中。

    算法

    1. 获取要转换的HashMap。
    2. 从集合创建流
    3. 将集合转换为列表并收集它
    4. 返回收集到的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]
    
  4. 使用 Guava 库 List.newArrayList(set) : Lists.newArrayList(set) 创建一个可变的 ArrayList 实例,其中包含指定集合的元素。

    算法

    1. 获取要转换的集合。
    2. 通过将集合作为参数传递给 Guava 库的此函数,使用 Lists.newArrayList() 创建一个新列表
    3. 返回形成的列表

    程序:

    // 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]