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


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