📜  将列表转换为 HashSet 的Java程序

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

将列表转换为 HashSet 的Java程序

List接口提供了一种存储有序集合的方法它是一个有序的对象集合,可以在其中存储重复的值。由于 List 保留了插入顺序,因此它允许元素的位置访问和插入。

HashSet类允许空元素。该类还为基本操作(如添加、删除、包含和大小)提供恒定的时间性能,假设散列函数将元素正确地分散在存储桶中,我们将在文章中进一步介绍。

将 List 转换为 HashSet 的方法:

  1. 将列表对象作为 HashSet 中的参数传递。
  2. 使用循环将 List 的每个元素添加到 HashSet 中。
  3. 使用 Set 类的 addAll() 方法。
  4. 在Java中使用流

方法一:在HashSet中将List对象作为参数传递

我们使用 HashSet 构造函数将其转换为 List。

Java
// Java program to demonstrate conversion of 
// list to set using constructor 
  
import java.util.*;
class GFG {
    public static void main(String[] args)
    {
        // Create a List
        List L = new ArrayList();
        
        // Add values to the List
        L.add("Aragorn");
        L.add("Gandalf");
        L.add("Legolas");
        L.add("Frodo");
        
        // Create a Set and pass List object as parameter
        HashSet S = new HashSet(L);
        
        // Print values of Set
        System.out.println("HashSet Elements are : ");
        
        // since the set is of string type, create a String
        // object to iterate through set
        for (String ob : S)
        {
            System.out.println(ob);
        }
    }
}


Java
// Java program to demonstrate conversion of 
// list to set using simple traversal
  
import java.util.*;
class GFG {
    public static void main(String[] args)
    {
        // Create a List
        List L = new ArrayList();
        
        // Add values to the List
        L.add(1);
        L.add(4);
        L.add(30);
        L.add(100);
        L.add(15);
        L.add(30);
        
        // Create a Set and pass List object as parameter
        HashSet S = new HashSet();
        
        // add each element of list into set
        for (Integer ob : L) 
        {
            S.add(ob);
        }
        
        // Print values of Set
        System.out.println("HashSet Elements are : ");
        
        // Create an Object ob that will automatically
        // identify the type of object of HashSet to iterate
        // through set
        for (Object ob : S) 
        {
            System.out.println(ob);
        }
    }
}


Java
// Java program to demonstrate conversion of 
// Set to array using addAll() method. 
  
import java.util.*;
class GFG {
    public static void main(String[] args)
    {
        // Create a List
        List L = new ArrayList();
        
        // Add values to the List
        L.add(1);
        L.add(4);
        L.add(30);
        L.add(100);
        L.add(15);
        L.add(30);
        
        Set S = new HashSet();
        
        // Use addAll() method
        S.addAll(L);
        
        // Print values of Set
        System.out.println("HashSet Elements are : ");
        
        // Create an Object ob that will automatically
        // identify the type of object of HashSet to iterate
        // through set
        for (Object ob : S) 
        {
            System.out.println(ob);
        }
    }
}


Java
// Java program to demonstrate conversion of 
// Set to list using stream 
  
import java.util.*;
class GFG {
    public static void main(String[] args)
    {
        // Create a List
        List L = new ArrayList();
        
        // Add values to the List
        L.add("Rohan");
        L.add("Ritik");
        L.add("Yogesh");
        L.add("Sangeeta");
        L.add("Palak");
        L.add("Laxmi");
        
        // create a stream from List and convert it into a
        // Set
        Set S = L.stream().collect(Collectors.toSet());
        
        // Print values of Set
        System.out.println("HashSet Elements are : ");
        
        // Create an Object ob that will automatically
        // identify the type of object of HashSet to iterate
        // through set
        for (String ob : S) 
        {
            System.out.println(ob);
        }
    }
}


输出
HashSet Elements are : 
Aragorn
Frodo
Gandalf
Legolas

方法二:使用循环将List的每个元素添加到HashSet中

我们只需创建一个列表。我们遍历给定的 List 并一一向 Set 中添加元素。

Java

// Java program to demonstrate conversion of 
// list to set using simple traversal
  
import java.util.*;
class GFG {
    public static void main(String[] args)
    {
        // Create a List
        List L = new ArrayList();
        
        // Add values to the List
        L.add(1);
        L.add(4);
        L.add(30);
        L.add(100);
        L.add(15);
        L.add(30);
        
        // Create a Set and pass List object as parameter
        HashSet S = new HashSet();
        
        // add each element of list into set
        for (Integer ob : L) 
        {
            S.add(ob);
        }
        
        // Print values of Set
        System.out.println("HashSet Elements are : ");
        
        // Create an Object ob that will automatically
        // identify the type of object of HashSet to iterate
        // through set
        for (Object ob : S) 
        {
            System.out.println(ob);
        }
    }
}
输出
HashSet Elements are : 
1
4
100
30
15

方法三:使用Set类的addAll()方法

java .util.Set.addAll ( Collection C)方法用于将上述集合中的所有元素追加到现有集合中。元素是随机添加的,不遵循任何特定顺序。

句法:

boolean addAll(Collection C)

参数:参数C是要添加到集合中的任何类型的集合。

返回值:如果该方法成功地将集合C的元素附加到此 Set 中,则该方法返回 true,否则返回 False。

Java

// Java program to demonstrate conversion of 
// Set to array using addAll() method. 
  
import java.util.*;
class GFG {
    public static void main(String[] args)
    {
        // Create a List
        List L = new ArrayList();
        
        // Add values to the List
        L.add(1);
        L.add(4);
        L.add(30);
        L.add(100);
        L.add(15);
        L.add(30);
        
        Set S = new HashSet();
        
        // Use addAll() method
        S.addAll(L);
        
        // Print values of Set
        System.out.println("HashSet Elements are : ");
        
        // Create an Object ob that will automatically
        // identify the type of object of HashSet to iterate
        // through set
        for (Object ob : S) 
        {
            System.out.println(ob);
        }
    }
}
输出
HashSet Elements are : 
1
4
100
30
15

方法 4:在Java中使用

注意:Stream 仅适用于 Java8 或更高版本。

我们在Java中使用流将给定的列表转换为流,然后将流转换为设置。这仅适用于Java 8 或之后的版本。

Java

// Java program to demonstrate conversion of 
// Set to list using stream 
  
import java.util.*;
class GFG {
    public static void main(String[] args)
    {
        // Create a List
        List L = new ArrayList();
        
        // Add values to the List
        L.add("Rohan");
        L.add("Ritik");
        L.add("Yogesh");
        L.add("Sangeeta");
        L.add("Palak");
        L.add("Laxmi");
        
        // create a stream from List and convert it into a
        // Set
        Set S = L.stream().collect(Collectors.toSet());
        
        // Print values of Set
        System.out.println("HashSet Elements are : ");
        
        // Create an Object ob that will automatically
        // identify the type of object of HashSet to iterate
        // through set
        for (String ob : S) 
        {
            System.out.println(ob);
        }
    }
}

输出:

HashSet Elements are :
1
4
100
30
15