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


Java ArrayList转HashSet用法及代码示例


ArrayList:在 Java 中,ArrayList 可以有重复项以及维护插入顺序。

HashSet:HashSet是Set的实现类。它不允许重复并在内部使用 Hashtable。

ArrayList转HashSet有四种方式:

  1. 使用构造函数。
  2. 使用 add() 方法通过迭代每个元素并将其添加到 HashSet 中。
  3. 使用 addAll() 方法将所有元素一次添加到 HashSet 中。
  4. 使用流

方法一:使用构造函数

在本例中,我们将创建一个 ArrayList 对象并将其传递给 HashSet 的构造函数。转换成HashSet是最简单的方法。



Java


// Java program to convert ArrayList
// to HashSet using constructor
import java.util.HashSet;
import java.util.ArrayList;
import java.io.*;
class GFG {
    public static void main(String[] args)
    {
       
        // adding elements to ArrayList object
        ArrayList<String> gfg = new ArrayList<>();
        
        gfg.add("data structure");
        gfg.add("competitive programming");
        gfg.add("Interviews");
        gfg.add("FANG");
        gfg.add("FANG");
        // pass ArrayList object into the HashSet object
        // constructor
        HashSet<String> hashSet = new HashSet<>(gfg);
        // printing every element in Set
        for (String value:hashSet) {
            System.out.println(value);
        }
    }
}
输出
FANG
data structure
Interviews
competitive programming

方法二:使用 add() 方法:

在此,我们将遍历 Arraylist 并添加 HashSet 中的每个元素。

Java


// Java program to convert ArrayList
// to HashSet using add() method
import java.io.*;
import java.util.ArrayList;
import java.util.HashSet;
class GFG {
    public static void main(String[] args)
    {
        ArrayList<String> gfg = new ArrayList<>();
       
        // adding element to ArrayList
        gfg.add("data structure");
        gfg.add("competitive programming");
        gfg.add("Interviews");
        gfg.add("FANG");
        gfg.add("FANG");
          // adding each Arraylist element inside the HashSet
        HashSet<String> hashSet = new HashSet<>();
       
        // printing each element
        gfg.forEach(value -> { hashSet.add(value); });
         
       
        for (String value:hashSet) {
            System.out.println(value);
        }
    }
}
输出
FANG
data structure
Interviews
competitive programming

方法3:使用Java Java.util.ArrayList.addall()用法及代码示例方法

在本例中,我们将使用 addALL() 方法在 HashSet 中简单地添加完整的 ArrayList 对象。

Java


// Java program to convert ArrayList
// to HashSet using addAll() method
import java.io.*;
import java.util.ArrayList;
import java.util.HashSet;
class GFG {
    public static void main(String[] args)
    {
        ArrayList<String> gfg = new ArrayList<>();
        // adding element into ArrayList object
        gfg.add("data structure");
        gfg.add("competitive programming");
        gfg.add("Interviews");
        gfg.add("FANG");
        gfg.add("FANG");
        // adding ArrayList to hashset using addAll() method
        HashSet<String> hashSet = new HashSet<>();
        hashSet.addAll(gfg);
        // printing each element of hashset
        for (String value:hashSet) {
            System.out.println(value);
        }
    }
}
输出
FANG
data structure
competitve programming
Interviews

方法四:使用

在这种方法中,我们将使用流迭代每个 ArrayList 元素,然后使用 collect 方法将每个项目添加到集合中。流是 java 8 的一部分

Java


// Java program to convert ArrayList
// to HashSet using streams
import java.io.*;
import java.util.ArrayList;
import java.util.Set;
import java.util.HashSet;
import java.util.stream.*;
class GFG {
    public static void main(String[] args)
    {
        ArrayList<String> gfg = new ArrayList<>();
        gfg.add("data structure");
        gfg.add("competitive programming");
        gfg.add("Interviews");
        gfg.add("FANG");
        gfg.add("FANG");
        // using stream to convert the ArrayList into set
        // then typecast into HashSet<String>
        HashSet<String> hashSet
            = (HashSet<String>)gfg.stream().collect(
                Collectors.toSet());
        // printing values of the hashSet
        for (String value:hashSet) {
            System.out.println(value);
        }
    }
}
输出
FANG
data structure
Interviews
competitive programming




相关用法


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