Java中從ArrayList獲取唯一值


ArrayList是Java集合框架的一個類,它實現了List介面。它是一個線性結構,按順序儲存和訪問每個元素。它允許儲存重複元素,但是,有一些方法可以幫助從ArrayList中獲取唯一值。在這篇文章中,我們將透過Java示例程式來了解這些方法的實際實現。

Java程式從ArrayList獲取唯一值

在跳轉到給定問題的解決方案程式之前,讓我們討論一下集合介面的以下概念:

HashSet

它是Java集合介面的一個類,它實現了Set介面。它與數學集合非常相似。在其中,所有元素都以排序的方式儲存,這減少了檢索時間,並且它不允許重複值。這就是使用HashSet來過濾重複項並從列表中獲取唯一值的原因。

語法

HashSet< Type >nameOfSet = new HashSet<>();

這裡,Type是包裝類物件,而不是原始資料型別。

ArrayList語法

ArrayList<Type> nameOflist = new ArrayList< Type >();

方法一

  • 建立一個Integer型別的ArrayList物件,並使用名為“add()”的內建方法向其中儲存一些元素。此方法接受一個引數並將其新增到指定的列表中。

  • 現在,建立一個相同型別的HashSet,並使用內建方法“addAll()”將先前ArrayList的所有元素儲存到其中。此方法接受ArrayList作為引數,並將所有元素新增到新的指定列表中。

  • 最後,透過呼叫列表列印值。

示例

以下示例演示瞭如何使用HashSet類從ArrayList中獲取唯一值。

import java.util.*;
public class Unique {
   public static void main(String[] args) {
      // Creating arraylist
      ArrayList<Integer> araylist = new ArrayList<Integer>();
      
      // Adding elements in arraylist
      araylist.add(8);
      araylist.add(5);
      araylist.add(2);
      araylist.add(9);
      araylist.add(2);
      araylist.add(4);
      araylist.add(9);
      araylist.add(7);
      System.out.println("List with duplicate elements: ");
      
      // loop to iterate through elements
      for(int i = 0; i < araylist.size(); i++ ) {
         // to print the elements in the list
         System.out.println(araylist.get(i));
      }
      HashSet<Integer> set = new HashSet<>(); // creating hashset
      set.addAll(araylist); // adding all elements to set
      System.out.println("List with unique elements: " + set);
   }
}     

輸出

List with duplicate elements:
8
5
2
9
2
4
9
7
List with unique elements: [2, 4, 5, 7, 8, 9]

方法二

  • 建立一個Integer型別的ArrayList物件,並使用名為“add()”的內建方法向其中儲存一些元素。此方法接受一個引數並將其新增到指定的列表中。

  • 現在,建立一個相同型別的另一個ArrayList物件。

  • 定義一個for迴圈,它將迭代到ArrayList的大小。在這個迴圈內,使用一個if塊檢查索引“i”處的值是否唯一。如果唯一,則將其新增到新的ArrayList中,否則將其丟棄。

  • 最後,透過呼叫列表列印值。

示例

這是另一個示例,我們將嘗試從中獲取ArrayList的唯一值。

import java.util.*;
public class Unique {
   public static void main(String[] args) {
      // Creating arraylist
      ArrayList<Integer> araylist1 = new ArrayList<Integer>();
      // Adding elements in arraylist
      araylist1.add(8);
      araylist1.add(5);
      araylist1.add(2);
      araylist1.add(9);
      araylist1.add(2);
      araylist1.add(4);
      araylist1.add(9);
      araylist1.add(7);
      System.out.println("List with duplicate elements: " + araylist1);
      ArrayList<Integer>araylist2 = new ArrayList<Integer>();
      for(int i = 0; i < araylist1.size(); i++ ) {
         int elem;
         // to filter the duplicate elements
         if(!araylist2.contains(araylist1.get(i))) {
            // storing unique elements to elem and adding to new list
            elem = araylist1.get(i);
            araylist2.add(elem);
         }
      }
      System.out.println("List with unique elements: " + araylist2);
   }
}

輸出

List with duplicate elements: [8, 5, 2, 9, 2, 4, 9, 7]
List with unique elements: [8, 5, 2, 9, 4, 7]

結論

我們從定義ArrayList開始這篇文章,在下一節中,我們瞭解了在從列表中查詢唯一值時使用HashSet的方法。我們討論了兩種從ArrayList中獲取唯一值的方法,第一種使用HashSet類,第二種不使用此類。

更新於:2023年7月20日

瀏覽量:1K+

啟動您的職業生涯

完成課程後獲得認證

開始學習
廣告
© . All rights reserved.