當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。