Java程式:移除ArrayList中的重複元素


在這篇文章中,我們將瞭解如何從ArrayList中移除重複元素。 ArrayList 類 是一個可調整大小的陣列,可以在 java.util 包 中找到。Java中內建陣列和ArrayList的區別在於陣列的大小不能修改。

問題陳述

給定一個ArrayList,編寫一個Java程式來移除ArrayList中的重複元素。以下是演示:

輸入

Input list : [150, 250, 300, 250, 500, 150, 600, 750, 300]

輸出

The list with no duplicates is:
[150, 250, 300, 500, 600, 750]

從ArrayList中移除重複元素的步驟

以下是從ArrayList中移除重複元素的步驟:

  • 步驟1 - 開始
  • 步驟2 - 宣告變數
  • 步驟3 - 定義值。
  • 步驟4 - 建立一個整數ArrayList並初始化其中的元素。
  • 步驟5 - 在控制檯上顯示ArrayList。
  • 步驟6 - 建立另一個整數LinkedHashSet。
  • 步驟7 - 使用addAll方法將前一個ArrayList中的元素作為元素包含到其中。
  • 步驟8 - 因為它是一個集合,所以它只新增唯一值。
  • 步驟9 - 清空ArrayList的元素。
  • 步驟10 - 在控制檯上顯示包含唯一元素的集合。
  • 步驟11 - 結束

方法1 - 使用LinkedHashSet從ArrayList中移除重複元素

在這裡,我們將所有操作繫結在main函式下:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;
public class Demo {
   public static void main(String[] args) {
      System.out.println("The required packages have been imported");
      ArrayList<Integer> input_list = new ArrayList<>(Arrays.asList(150, 250, 300, 250, 500, 150, 600, 750, 300));
      System.out.println("The list is defined as: " + input_list);
      Set<Integer> temp_set = new LinkedHashSet<>();
      temp_set.addAll(input_list);
      input_list.clear();
      input_list.addAll(temp_set);
      System.out.println("\nThe list with no duplicates is: \n" + input_list);
   }
}

輸出

The required packages have been imported
The list is defined as: [150, 250, 300, 250, 500, 150, 600, 750, 300]

The list with no duplicates is:
[150, 250, 300, 500, 600, 750]

方法2 - 使用使用者自定義函式從ArrayList中移除重複元素

在這裡,我們將操作封裝到函式中,展示面向物件的程式設計:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;
public class Demo {
   static void remove_duplicates(ArrayList<Integer> input_list){
      Set<Integer> temp_set = new LinkedHashSet<>();
      temp_set.addAll(input_list);
      input_list.clear();
      input_list.addAll(temp_set);
      System.out.println("\nThe list with no duplicates is: \n" + input_list);
   }
   public static void main(String[] args) {
      System.out.println("The required packages have been imported");
      ArrayList<Integer> input_list = new ArrayList<>(Arrays.asList(150, 250, 300, 250, 500, 150, 600, 750, 300));
      System.out.println("The list is defined as: " + input_list);
      remove_duplicates(input_list);
   }
}

輸出

The required packages have been imported
The list is defined as: [150, 250, 300, 250, 500, 150, 600, 750, 300]

The list with no duplicates is:
[150, 250, 300, 500, 600, 750]

更新於:2024年7月22日

3K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告