Entfernen Sie Duplikate aus einem Rubinarray

Entfernen Sie Duplikate aus einem Rubinarray
Ein Array ist eine unglaubliche Datenstruktur, mit der Sie eine Sammlung von Elementen speichern können. Jedes Element im Array wird mit einem eindeutigen Ganzzahlwert zugeordnet, der seine Position im Array bezeichnet. Arrays gehören zu den beliebtesten und vielseitigsten Datenstrukturen in Ruby- und anderen Programmiersprachen. Sie können die Arrays verwenden, um alle Arten von Daten wie Zeichenfolgen, Ganzzahlen oder sogar andere Arrays zu speichern.

Im Gegensatz zu anderen Datenstrukturen, die keine doppelten Werte unterstützen, können Arrays mehr als einen Wert desselben Typs und desselben Werts halten. Dies kann ein Problem sein, insbesondere beim Speichern einzigartiger Werte.

In diesem Tutorial wird uns beigebracht, wie Sie die doppelten Elemente aus einem Array mit verschiedenen Methoden entfernen.

Verwenden der UNIQ -Methode in Ruby

In Ruby können wir die UNIQ -Methode verwenden, um die doppelten Elemente aus einem Eingangsarray zu entfernen. Wir können diese Methode in einem bestimmten Array nennen. Die Methode gibt dann ein neues Array zurück, wobei die doppelten Elemente entfernt werden.

Die Methode entfernt die doppelten Elemente aus dem Array in der Reihenfolge des Aussehens.

Diese Methode ändert das ursprüngliche Array nicht. Stattdessen erstellt es ein neues Array mit einzigartigen Elementen, das wir einer neuen Variablen zuweisen oder eine vorhandene Variable aktualisieren können.

Nehmen Sie das Beispielarray, das im Folgenden angezeigt wird:

arr = [1,2,3,1,3,3,1,2,3]

Wenn wir die UNIQ -Methode aufrufen, sollte sie das vorherige Array mit den abgestreiften doppelten Elementen zurückgeben.

IRB (Haupt): 013: 0> arr.Uniq
=> [1, 2, 3]

Unabhängig davon, wie viele doppelte Werte im Array sind, gibt die Methode nur einen einzelnen Wert des Typs zurück.

Wie bereits erwähnt, ändert die UNIQ -Methode das ursprüngliche Array nicht. Daher können wir den resultierenden Wert in eine neue Variable speichern, wie im Folgenden gezeigt:

IRB (Haupt): 014: 0> new_arr = arr.Uniq
=> [1, 2, 3]

Um das ursprüngliche Array zu ändern, können wir den UNIQ verwenden! Methode. Diese Methode entfernt die doppelten Werte aus dem ursprünglichen Array und modifiziert es, um das Neue Array widerzuspiegeln.

IRB (Haupt): 015: 0> arr.Uniq!
=> [1, 2, 3]
IRB (Haupt): 016: 0> arr
=> [1, 2, 3]

Wie Sie sehen können, wird der Wert der ARR -Variablen dauerhaft geändert.

Einzigartige Elemente nach Klasse abrufen

Die UNIQ -Methode erstellt einen Hash aus den Elementen im Array. Da die Hash -Tasten einzigartig sind, können wir die Liste der Schlüssel erhalten und sie verwenden, um ein neues Array zu erstellen.

Wir können jedoch einen Block an die Methode übergeben, um die Elemente nach Klasse herauszufiltern. Ein Beispiel wird im Folgenden gezeigt:

IRB (Haupt): 017: 0> arr = [1, '1', 2, '2', 3, '3']

Führen Sie Folgendes aus, um die doppelten Werte nach Klasse zu sortieren:

[CC Lang = "Text" width = "100%" Height = "100%" entkommen = "True" thema = "Blackboard" nowrap = "0"]

[/cc]

Wir nennen die UNIQ -Methode auf ARR mit dem Argument &: Klassenargument. Dies ist als Konvertierung „Symbol für Proc“ bekannt. Es konvertiert das Symbol: Klasse in einen Proc | obj | obj.Klasse .

Wenn Sie die eindeutige Methode mit dem Proc als Argument aufrufen.

In diesem Fall bewahrt die Methode nur eine 1, ein „1“ und so weiter. Aber es hält das erste Auftreten der Zahl und das erste Vorkommen der String.

Dies liegt daran, dass die Klassenmethode des Elements verwendet wird. Die Klasse der Ganzzahlen und die Saiten sind unterschiedlich.

Abschluss

Wir haben über die Verwendung der UNIQ -Methoden besprochen, um die doppelten Werte aus einem Eingangsarray zu entfernen. Wir haben auch gelernt, wie man in Ordnung ist, sodass Sie das ursprüngliche Array ersetzen und die doppelten Werte basierend auf der übergeordneten Klasse sortieren können.