当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Set转List用法及代码示例


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

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

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

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

    算法

    1. 获取要转换的 Set。
    2. 创建一个空列表
    3. 将集合中的每个元素推入列表
    4. 返回形成的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 <T> List<T> convertSetToList(Set<T> set) 
        { 
            // create an empty list 
            List<T> 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<String> hash_Set = new HashSet<String>(); 
      
            // 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<String> list = convertSetToList(hash_Set); 
      
            // Print the List 
            System.out.println("List: " + list); 
        } 
    } 
    输出:
    Set: [Set, Example, Geeks, For]
    List: [Set, Example, Geeks, For]
    
  2. 在构造函数的帮助下:Java 中的集合有一个构造函数,可以在其中传递直接集合以从中创建列表。

    算法

    1. 获取要转换的 Set。
    2. 通过将集合作为参数传递给构造函数来创建列表。
    3. 返回形成的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 <T> List<T> convertSetToList(Set<T> set) 
        { 
            // create a list from Set 
            List<T> list = new ArrayList<>(set); 
      
            // return the list 
            return list; 
        } 
      
        public static void main(String args[]) 
        { 
      
            // Create a Set using HashSet 
            Set<String> hash_Set = new HashSet<String>(); 
      
            // 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<String> 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 流:在 Java 8 中,可以使用 Stream 将集合转换为列表,方法是使用 Set.stream() 将集合转换为顺序 Stream,并使用 Collector 将输入元素收集到新的 List 中。

    算法

    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 <T> List<T> convertSetToList(Set<T> 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<String> hash_Set = new HashSet<String>(); 
      
            // 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<String> 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. 获取要转换的 Set。
    2. 使用 Lists.newArrayList() 创建一个新列表,并将集合作为参数传递给 Guava 库的此函数
    3. 返回形成的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 <T> List<T> convertSetToList(Set<T> set) 
        { 
            // create a list from Set 
            return Lists.newArrayList(set); 
        } 
      
        public static void main(String args[]) 
        { 
      
            // Create a Set using HashSet 
            Set<String> hash_Set = new HashSet<String>(); 
      
            // 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<String> list = convertSetToList(hash_Set); 
      
            // Print the List 
            System.out.println("List: " + list); 
        } 
    } 

    输出:

    Set: [Set, Example, Geeks, For]
    List: [Set, Example, Geeks, For]
    


相关用法


注:本文由纯净天空筛选整理自RishabhPrabhu大神的英文原创作品 Program to Convert Set to List in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。