Java 把列表转换为集合

Java 把列表转换为集合

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

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

在这篇文章中,我们将讨论在Java中把List接口转换成Set的不同方法。

方法1:Native方法 :Native方法是创建一个空集,并将指定列表中的每个元素添加到新创建的集合中。下面是Native的方法的实现。

// 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& lt;
    T& gt;
    Set& lt;
    T& gt;
    convertListToSet(List& lt; T & gt; list)
    {
        // create a set from the List
        return new HashSet& lt;
        >
        (list);
    }
 
    public static void main(String args[])
    {
 
        // Create a stream of integers
        List& lt;
        String& gt; list = Arrays.asList("GeeksForGeeks",
                                          "Geeks",
                                          "forGeeks",
                                          "A computer portal",
                                          "for",
                                          "Geeks");
 
        // Print the List
        System.out.println(" List : " + list);
 
        // Convert List to stream
        Set& lt;
        String& gt;
        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 Stream 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]

方法5:在集合包中使用addAll()方法

在这里,我们可以通过使用addAll()方法将列表项转换为集合。为此,我们必须导入 java.util.Collection

这个 addAll(Collection c) 方法是一个布尔数据类型。它用于将一个对象的集合添加到另一个对象的集合中。

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 using addAll() method
        HashSet<T> set = new HashSet<>();
        set.addAll(list);
        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]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程