比較兩個集合的 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() 方法。