使用 HashSet 创建对集的Java程序
问题陈述:我们需要在所有给定的对中找到并打印唯一的对。
通常,如果我们必须在所有给定数字中找到唯一的数字,那么我们只需将所有数字放入 HashSet 并打印它们。让我们考虑一个示例图来更好地解释问题陈述。假设我们有三对通常是 (3, 5), (4, 5), (3, 5)。现在,如果我们将它放入集合中,那么输出将是。
Output: (3, 5), (4, 5), (3, 5)
Note: But in the case of Pair, we can’t just write as shown below but if we try to put Pair in a set then it gives us the problem for illustration.
HashSet set = new HashSet<>();
从示例中,我们可以清楚地看到重复对仍然存在。这是因为对于集合来说, Pair是同一种对象,无法区分。所以为了克服这个问题,我们可以制作字符串Pairs的索引和值,并将其以 String 的形式存储在 Set 中,然后打印它,您可以获得所有唯一的对。
例子
Java
// Java Program to Create Set of Pairs
// using HashSet
// Importing required classes
import java.io.*;
import java.util.HashSet;
// Class 1
// Helper class for creating pairs
class Pair {
// Pair attributes
public int index;
public int value;
// Constructor to initialize pair
public Pair(int index, int value)
{
// This keyword refers to current instance
this.index = index;
this.value = value;
}
}
// Class 2
// Main class
class GFG {
// Main driver method
public static void main(String[] args)
{
// Initializing an array of Pair
// Custom input elements
Pair arr[] = new Pair[4];
arr[0] = new Pair(2, 3);
arr[1] = new Pair(3, 4);
arr[2] = new Pair(5, 10);
arr[3] = new Pair(3, 4);
// Creating a hashSet by
// declaring object of string type
HashSet set = new HashSet<>();
// Adding pair in set in form of string
for (int i = 0; i < 4; i++) {
set.add(arr[i].index + ", " + arr[i].value);
}
// Lastly iterating using for each loop annd
// printing the elements pairs
for (String e : set)
System.out.println("(" + e + ")");
}
}
输出
(5, 10)
(2, 3)
(3, 4)
输出说明:
因此,从代码和输出中,您可以清楚地看到重复对被删除,我们可以在不覆盖hashCode() 方法和equals() 方法的情况下获取所有唯一对。