在 Java 中將 ArrayList 轉換為 Set

Mohammad Irfan 2023年10月12日
  1. 在 Java 中使用 Naive 方法將 ArrayList 轉換為 HashSet
  2. 使用 Java 中的建構函式將 ArrayList 轉換為 HashSet
  3. 使用 Java 8 Stream API 將 ArrayList 轉換為 HashSet
  4. 使用 Java 中的 Set.copyOf() 方法將 ArrayList 轉換為 HashSet
  5. 在 Java 中使用 Apache Commons 集合庫將 ArrayList 轉換為 HashSet
在 Java 中將 ArrayList 轉換為 Set

ArrayList 是 List 介面的實現類,用於以線性順序儲存資料,而 set 是具有 HashSet 類來儲存資料的介面。這兩者之間的主要區別是 HashSet 不允許重複元素並儲存唯一元素。

本教程將介紹將 ArrayList 轉換為 HashSet 的不同方法。

在 Java 中使用 Naive 方法將 ArrayList 轉換為 HashSet

這是將列表轉換為集合的最基本方法。

在這種方法中,我們首先宣告一個空集。然後我們遍歷列表並使用 HashSet.add() 方法將其元素一一新增到集合中。當迴圈終止時,列表被轉換為一個集合。

看看下面的程式碼。

import java.util.*;
public class SimpleTesting {
  public static void main(String args[]) {
    // initialise a list
    List<String> list =
        Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
    // intialise a set
    Set<String> set = new HashSet<String>();
    // apply for loop
    for (String ele : list) {
      set.add(ele);
    }
    // display the set
    for (String ele : set) {
      System.out.println(ele);
    }
  }
}

輸出:

Rahul
Kushagra
Jay
Karan
Laxman
Praful

在上面的程式碼中,我們建立了一個儲存一些名稱的列表。我們還初始化了一個名為 set 的空 Set。

然後我們遍歷列表並新增其元素以一一設定。最後,我們列印集合的元素。請注意如何消除列表中的重複元素。

使用 Java 中的建構函式將 ArrayList 轉換為 HashSet

這種方法是所有方法中最簡單的。在這種方法中,我們將需要轉換的列表傳遞給 HashSet 類的建構函式。

這消除了之前方法中所需的 for 迴圈的需要。建構函式返回一個包含所有唯一元素的新集合。

看看下面的程式碼。

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class SimpleTesting {
  public static void main(String args[]) {
    // initialise a list
    List<String> list =
        Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
    // intialise a set
    Set<String> set = new HashSet<String>(list);

    // display the set
    for (String ele : set) {
      System.out.println(ele);
    }
  }
}

輸出:

Rahul
Kushagra
Jay
Karan
Laxman
Praful

在上面的程式碼中,我們建立了一個儲存一些名稱的列表。我們還初始化了一個名為 set 的空 Set。

我們將列表作為引數傳遞給 HashMap 的建構函式。最後,我們列印集合的元素。請注意如何消除列表中的重複元素。

使用 Java 8 Stream API 將 ArrayList 轉換為 HashSet

在這種方法中,我們使用 Java 8 Stream API 將 ArrayList 轉換為 HashSet。我們首先將列表轉換為流。然後我們將 collect 函式應用於流。

為了轉換成一個集合,我們在 collect 操作中使用 Collectors.toSet() 函式來獲取一個集合。看看下面的程式碼。

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

public class SimpleTesting {
  public static void main(String args[]) {
    // initialise a list
    List<String> list =
        Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
    // intialise a set using stream
    Set<String> set = list.stream().collect(Collectors.toSet());

    // display the set
    for (String ele : set) {
      System.out.println(ele);
    }
  }
}

輸出:

Rahul
Kushagra
Jay
Karan
Laxman
Praful

我們使用上面程式碼中的 List.stream() 函式將列表轉換為流。我們將 collect 操作應用於流並將 Collectors.toSet() 方法作為引數傳遞。

這導致將流轉換為集合。然後我們將這個集合儲存在變數集合中。

使用 Java 中的 Set.copyOf() 方法將 ArrayList 轉換為 HashSet

Java 10 提供了一個 Set.copyof() 方法,該方法將 Collection 作為其引數並返回一個包含給定 Collection 元素的不可變集合。在這種方法中,我們使用 Set.copyOf() 方法將 ArrayList 轉換為 HashSet。

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
public class SimpleTesting {
  public static void main(String args[]) {
    // initialise a list
    List<String> list =
        Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
    // intialise a set
    Set<String> set = Set.copyOf(list);
    // display the set
    for (String ele : set) {
      System.out.println(ele);
    }
  }
}

輸出:

Rahul
Kushagra
Jay
Karan
Laxman
Praful

在 Java 中使用 Apache Commons 集合庫將 ArrayList 轉換為 HashSet

如果你正在使用 Apache Commons Collection 庫,請使用帶有兩個引數的 CollectionUtils.addAll() 方法:目標集合物件和源集合物件。

源集合物件的值被複制到目標集合物件中並建立一個集合。看看下面的程式碼。

此程式碼使用 Apache 公共庫的依賴程式碼。首先,將此依賴項新增到你的 Java 專案中以成功執行此程式碼。

<!-- https://mvnrepository.com/artifact/commons-collections/commons-collections -->
<dependency>
    <groupId>commons-collections</groupId>
    <artifactId>commons-collections</artifactId>
    <version>3.2.2</version>
</dependency>
import java.util.*;
public class SimpleTesting {
  public static void main(String args[]) {
    // initialise a list
    List<String> sourcelist =
        Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
    // intialise a set
    Set<String> targetset = new HashSet<String>();
    // Adding elements
    CollectionUtils.addAll(targetset, sourcelist);
    // display the set
    for (String ele : targetset) {
      System.out.println(ele);
    }
  }
}

輸出:

Rahul
Kushagra
Jay
Karan
Laxman
Praful

相關文章 - Java ArrayList

相關文章 - Java Set