比較兩個集合的 Java 程式


Java 集合框架提供了一個名為 Set 的介面,該介面擴充套件了Collection 介面,用於儲存唯一元素。它體現了數學集合的特徵。因此,它允許我們對數學集合執行的所有操作,例如並集、比較、交集等等。

本文的目標是編寫 Java 程式來比較兩個集合。對於兩個集合的比較操作,Java 提供了一個內建方法equals(),我們將在下一節中討論。

TreeSet 類

由於 Set 是一個介面,我們不能直接使用它的功能。為此,我們需要一個TreeSet 類,它實現了 Set 介面,這意味著它可以訪問 Set 的所有方法。它以樹狀結構儲存所有元素,並且與 Set 一樣,它不允許儲存重複元素。

equals() 方法

equals() 方法是 Set 的一個方法,用於檢查兩個給定的集合是否包含相同數量和型別的物件,並且順序相同。如果兩個集合都滿足條件,則返回 true,否則返回 false。

語法

setOne.equals(setTwo);

不同的方法

我們將在 Java 程式中使用以下方法來比較兩個集合:

比較具有相同元素但順序不同的 TreeSets

以下是比較具有相同元素但順序不同的 TreeSets 的步驟:

  • 首先,我們將從java.util 包匯入類。
  • 然後建立一個名為Example1的類。
  • 在 main 方法內部,初始化兩個TreeSet 物件。
  • 使用add() 方法向兩個 TreeSet 物件新增元素,但我們將以不同的順序新增元素。
  • 列印兩個 TreeSet 物件的元素。
  • 然後使用equals() 方法比較兩個 TreeSet 物件。
  • 最後,使用if-else 語句列印結果。

示例

在下面的 Java 程式中,我們將建立兩個具有相同元素但順序不同的 TreeSet 類。儘管如此,當我們使用 equals() 方法比較它們時,它將返回 true,因為預設情況下 TreeSet 會按排序順序儲存其元素。

import java.util.*;
public class Example1 {
   public static void main(String args[]) {
      // Creating the first tree set
      TreeSet<String> treeSt1 = new TreeSet<>();
      // Adding elements in tree set
      treeSt1.add("Tutorix");
      treeSt1.add("Simply");
      treeSt1.add("Easy");
      treeSt1.add("Learning");
      treeSt1.add("Tutorials");
      treeSt1.add("Point");
      System.out.println("Elements of the first set: " + treeSt1);
      // Creating the second tree set
      TreeSet<String> treeSt2 = new TreeSet<>();
      // Adding elements in tree set
      treeSt2.add("Tutorials");
      treeSt2.add("Point");
      treeSt2.add("Tutorix");
      treeSt2.add("Simply");
      treeSt2.add("Easy");
      treeSt2.add("Learning");
      System.out.println("Elements of the second set: " + treeSt2);
      // comparing both sets
      if (treeSt1.equals(treeSt2)) {
         System.out.println("Both sets are equal");
      } else {
         System.out.println("Both sets are not equal");
      }
   }
}

輸出

Elements of the first set: [Easy, Learning, Point, Simply, Tutorials, Tutorix]
Elements of the second set: [Easy, Learning, Point, Simply, Tutorials, Tutorix]
Both sets are equal

比較來自相同陣列的 TreeSets

以下是比較來自相同陣列的 TreeSets 的步驟:

  • 首先,我們將從java.util 包匯入類。
  • 定義類名example 2,並在 main 方法內部初始化陣列
  • 使用Arrays.asList()將每個陣列轉換為 TreeSet。
  • 列印兩個 TreeSet 物件的元素。
  • 使用equals() 方法檢查 TreeSets 是否相等。
  • 最後,使用if-else 語句列印集合是否相等。

示例

這是另一個 Java 程式,它說明了如何使用 equals() 方法比較兩個集合。我們將首先初始化兩個陣列,然後使用 asList() 方法將它們轉換為集合,以便我們可以使用 equals() 方法比較它們。

import java.util.*;
public class Example2 {
   public static void main(String[] args) {
      // defining the first array
      String arrOne[] = { "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y" };
      // creating an instance of TreeSet and storing the values of first array
      TreeSet<String> trSet1 = new TreeSet<String>(Arrays.asList(arrOne));
      System.out.println("Elements of the first set: " + trSet1);
      // defining the second array
      String arrTwo[] = { "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y" };
      // creating an instance of TreeSet and storing the values of second array
      TreeSet<String> trSet2 = new TreeSet<String>(Arrays.asList(arrTwo));
      System.out.println("Elements of the second set: " + trSet2);
      // comparing both sets
      if (trSet1.equals(trSet2)) {
         System.out.println("Both sets are equal");
      } else {
         System.out.println("Both sets are not equal");
      }
   }
}

輸出

Elements of the first set: [P, Q, R, S, T, U, V, W, X, Y]
Elements of the second set: [P, Q, R, S, T, U, V, W, X, Y]
Both sets are equal

結論

我們從定義Java 集合框架Set 介面開始本文,在下一節中,我們編寫了兩個 Java 程式來比較並檢查兩個給定的集合是否相等。為此,我們使用了TreeSet 類Set 介面equals() 方法

更新於:2024 年 8 月 22 日

1K+ 次檢視

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告