比较两个集合的 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+ 次查看

开启你的职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.