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


Java List转Set用法及代码示例


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

  • set 接口是对象的无序集合,其中不能存储重复值。
  • Java Set 不提供对元素插入或删除位置的控制。
  • 本质上,Set 是由 HashSet、LinkedHashSet 或 TreeSet(排序表示)实现的。
  • Set 有多种方法来添加、删除 clear、size 等,以增强该接口的使用。

在这篇文章中,讨论了在 Java 中将 List 接口转换为 Set 的不同方法:

  1. 天真的方法: 天真的解决方案是创建一个空集并将指定列表的每个元素添加到新创建的集合中。

    以下是天真的方法的实现:

    
    // Java Program to convert
    // List to Set in Java 8
      
    import java.util.*;
    import java.util.stream.*;
    import java.util.function.Function;
      
    class GFG {
      
        // Generic function to convert list to set
        public static <T> Set<T> convertListToSet(List<T> list)
        {
            // create an empty set
            Set<T> set = new HashSet<>();
      
            // Add each element of list into the set
            for (T t:list)
                set.add(t);
      
            // return the set
            return set;
        }
      
        public static void main(String args[])
        {
      
            // Create a stream of integers
            List<String> list = Arrays.asList("GeeksForGeeks",
                                              "Geeks",
                                              "forGeeks",
                                              "A computer portal",
                                              "for",
                                              "Geeks");
      
            // Print the List
            System.out.println("List:" + list);
      
            // Convert List to stream
            Set<String> set = convertListToSet(list);
      
            // Print the Set
            System.out.println("Set from List:" + set);
        }
    }

    输出:

    List:[GeeksForGeeks, Geeks, forGeeks, A computer portal, for, Geeks]
    Set from List:[Geeks, for, GeeksForGeeks, A computer portal, forGeeks]
    
  2. 使用构造函数:HashSet 构造函数可以使用另一个集合对象来构造一个包含指定列表元素的新集合。

    下面是上述方法的实现:



    
    // Java Program to convert
    // List to Set in Java 8
      
    import java.util.*;
    import java.util.stream.*;
      
    class GFG {
      
        // Generic function to convert list to set
        public static <T> Set<T> convertListToSet(List<T> list)
        {
            // create a set from the List
            return new HashSet<>(list);
        }
      
        public static void main(String args[])
        {
      
            // Create a stream of integers
            List<String> list = Arrays.asList("GeeksForGeeks",
                                              "Geeks",
                                              "forGeeks",
                                              "A computer portal",
                                              "for",
                                              "Geeks");
      
            // Print the List
            System.out.println("List:" + list);
      
            // Convert List to stream
            Set<String> set = convertListToSet(list);
      
            // Print the Set
            System.out.println("Set from List:" + set);
        }
    }

    输出:

    List:[GeeksForGeeks, Geeks, forGeeks, A computer portal, for, Geeks]
    Set from List:[Geeks, for, GeeksForGeeks, A computer portal, forGeeks]
    
  3. 使用 Java 8 流 API:HashSet 构造函数可以使用另一个集合对象来构造一个包含指定列表元素的新集合。

    下面是上述方法的实现:

    
    // Java Program to convert
    // List to Set in Java 8
      
    import java.util.*;
    import java.util.stream.*;
      
    class GFG {
      
        // Generic function to convert list to set
        public static <T> Set<T> convertListToSet(List<T> list)
        {
            // create a set from the List
            return list.stream().collect(Collectors.toSet());
        }
      
        public static void main(String args[])
        {
      
            // Create a stream of integers
            List<String> list = Arrays.asList("GeeksForGeeks",
                                              "Geeks",
                                              "forGeeks",
                                              "A computer portal",
                                              "for",
                                              "Geeks");
      
            // Print the List
            System.out.println("List:" + list);
      
            // Convert List to stream
            Set<String> set = convertListToSet(list);
      
            // Print the Set
            System.out.println("Set from List:" + set);
        }
    }

    输出:

    List:[GeeksForGeeks, Geeks, forGeeks, A computer portal, for, Geeks]
    Set from List:[Geeks, for, GeeksForGeeks, A computer portal, forGeeks]
    
  4. 使用 Guava Sets.newHashSet():Sets.newHashSet() 创建一个可变的 HashSet 实例,其中包含指定列表的元素。

    下面是上述方法的实现:

    
    // Java Program to convert
    // List to Set in Java 8
      
    import java.util.*;
    import java.util.stream.*;
      
    class GFG {
      
        // Generic function to convert list to set
        public static <T> Set<T> convertListToSet(List<T> list)
        {
            // create a set from the List
            return return Sets.newHashSet(list);
        }
      
        public static void main(String args[])
        {
      
            // Create a stream of integers
            List<String> list = Arrays.asList("GeeksForGeeks",
                                              "Geeks",
                                              "forGeeks",
                                              "A computer portal",
                                              "for",
                                              "Geeks");
      
            // Print the List
            System.out.println("List:" + list);
      
            // Convert List to stream
            Set<String> set = convertListToSet(list);
      
            // Print the Set
            System.out.println("Set from List:" + set);
        }
    }

    输出:

    List:[GeeksForGeeks, Geeks, forGeeks, A computer portal, for, Geeks]
    Set from List:[Geeks, for, GeeksForGeeks, A computer portal, forGeeks]
    




相关用法


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