Java-Programm zum Erstellen von Paarpaaren mit HashSet
Problemstellung: Wir müssen eindeutige Paare unter allen gegebenen Paaren finden und drucken.
Wenn wir die eindeutigen Zahlen unter allen gegebenen Zahlen finden müssen, fügen wir im Allgemeinen einfach alle Zahlen in HashSet ein und drucken sie aus. Betrachten wir eine Beispielillustration, um die Problemstellung besser zu interpretieren. Angenommen, wir haben drei Paare, die normalerweise (3, 5), (4, 5), (3, 5) sind. Wenn wir es jetzt in das Set einfügen, wird die Ausgabe sein.
Output: (3, 5), (4, 5), (3, 5)
Hinweis: Aber im Fall von Pair können wir nicht einfach wie unten gezeigt schreiben, aber wenn wir versuchen, Pair in einen Satz zu stecken, ergibt sich das Problem zur Veranschaulichung.
HashSet<Pair> set = new HashSet<>();
Aus dem Beispiel können wir deutlich erkennen, dass immer noch doppelte Paare vorhanden sind. Dies liegt daran, dass Pair für die Menge derselbe Objekttyp ist und nicht zwischen ihnen unterschieden werden kann. Um dieses Problem zu lösen, können wir also einfach eine Zeichenfolge aus Indizes und Werten von Pairs erstellen und diese in Form von String in Set speichern und dann drucken, und Sie können alle eindeutigen Paare erhalten.
Beispiel
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<String> 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)
Erklärung der Ausgabe:
Aus dem Code und der Ausgabe können Sie also deutlich erkennen, dass doppelte Paare gelöscht werden, und wir können alle eindeutigen Paare erhalten, ohne die hashCode() -Methode und die equals() -Methode zu überschreiben .