Wie verwende ich eine Swap()-Methode in Java?

In Java ist die swap()-Methode eine integrierte statische Funktion der Collections-Klasse, die aus dem Paket „java.util“ importiert wird. Es vertauscht die beiden Elemente an den angegebenen Indizes innerhalb der Liste. Der Rückgabetyp von swap() ist void. Allerdings wird die der swap()-Methode übergebene Liste geändert, da die Positionen der Elemente vertauscht werden. Die Methode swap() ändert die Liste nicht, wenn die für den Austausch angegebenen Indizes gleich sind.

Kurzer Überblick

Dieser Artikel behandelt die folgenden Aspekte:

Wie verwende ich die Swap()-Methode in Java?

In benutzerdefinierten Funktionen erfolgt der Austausch, indem die dritte Variable zum Speichern von Werten verwendet und diese dann ausgetauscht werden. Der benutzerdefinierte Ansatz ist jedoch hinsichtlich des Aufrufs der Funktion in verschiedenen Klassen, Leistungsaspekten oder umfangreichem Code eingeschränkt. Andererseits ist die Collections.swap() Die Methode eignet sich zum Austauschen der beiden Elemente einer Liste, ArrayList oder Objektsammlungen.

Syntax

Die swap()-Methode akzeptiert drei Argumente, wie in der folgenden Syntax gezeigt:

Collections.swap(List, int index1, int index2)

Hier:

  • Collections ist die Klasse, die die statische swap()-Funktion aufruft.
  • Im tauschen() Methode, die „AufführenDas Argument „bezieht sich auf eine beliebige Liste oder Sammlung von Objekten, in denen die Elemente ausgetauscht werden sollen.
  • Der „index1“ Und „index2„sind zwei ganzzahlige Argumente, die miteinander vertauscht werden sollen.

Sehen wir uns nun verschiedene Beispiele an, um die Funktionsweise der Collections.swap()-Methode zu verstehen.

Beispiel 1: Tauschen mit der Methode Collections.swap()

Der Import-Anweisung enthält alle wesentlichen Abhängigkeiten und Klassen von Die „java.util Paket. Innerhalb der hauptsächlich() Methode, die Klasse auflisten erstellt eine Instanz „Programmsprachen” vom Datentyp String. Der Arrays.asList() Die Methode erstellt eine Liste der genannten Elemente. Der Collections.swap() Methoden tauschen die Elemente am aus 2 Und 1. Index des „Programmsprachen“ Aufführen. Der println() Die Methode zeigt dann die Liste vor und nach dem Austausch an:

package swapMethod;
import java.util.*;
public class swapMethod {
public static void main(String() args) {
List <String> programLanguages = Arrays.asList("C++", "Java" , "Python");
System.out.println("Before swapping " +  programLanguages);
Collections.swap(programLanguages, 2, 1);
  System.out.println("After swapping is " + programLanguages) ; 
}
}

Ausgabe

Die Ausgabe erfolgt wie folgt:

Beispiel 2: Austauschen der Elemente für die ArrayList mit Collections.swap()

ArrayList ist die Sammlung von Elementen, die je nach Speicherbedarf wächst und schrumpft. Neben der Verwendung der swap()-Methode mit der List können wir auch die ArrayList damit verwenden.

In diesem Beispiel werden die wesentlichen Abhängigkeiten und Methoden aus importiert java.util Paket:

import java.util.*;

Im Inneren hauptsächlich() Programm, das Anordnungsliste Klasse erstellt eine Instanz „Programmsprachen“ des „Zeichenfolge“ Datentyp. Der hinzufügen() Die Methode wird mit „Programmsprachen“. Die ArrayList „programLanguages“ vor dem Austausch wird dann gedruckt, um einen Vergleich zu ermöglichen:

ArrayList<String> programLanguages = new ArrayList<>(); //created an ArrayList
//add the elements to the ArrayList
programLanguages.add("C++");
programLanguages.add( "Java");
programLanguages.add("Python");

System.out.println("Before swapping " +  programLanguages);

Der „Collections.swap()”-Methode nimmt die folgenden Argumente und tauscht die Elemente an den angegebenen Indizes innerhalb der „Programmsprachen“ Anordnungsliste. Die Ausgabe wird dann gedruckt:

//Swap ElementsCollections.swap(programLanguages, 0, 1);

System.out.println("After swapping is " + programLanguages) ;

Ausgabe

Die Ausgabe ist im folgenden Schnappschuss dargestellt:

Notiz: Collection.swap() funktioniert nicht auf den Arrays.

Beispiel 3: Vertauschen der Elemente von Liste der Listen Verwenden von Collections.swap()

Eine Liste ist eine Sammlung/Gruppe von Objekten, die doppelte Werte/Elemente speichern kann. Die Liste der Listen ist eine zweidimensionale Datenstruktur, die Listen in Indizes speichert. In Listenlistenstrukturen wird eine Liste an einem Index gespeichert. Der Collections.swap() Die Methode funktioniert effizient für die Datenstruktur „List of Lists“.

Im folgenden Code wird die Importanweisung verwendet, um alle erforderlichen Klassen und Abhängigkeiten aus der „java.util“ Paket:

import java.util.*;

Im Inneren hauptsächlich() Methode, ein „Liste der Listen” ganzzahliger Datentypen wird deklariert. In ähnlicher Weise werden zwei weitere Listen deklariert, nämlich firstInnerList Und zweiteInnerList. Diese beiden Listen werden dem „listOfLists” und werden an den zusammenhängenden Speicherorten abgelegt:

List <List <Integer>> listOfLists = new ArrayList<>();
List<Integer> firstInnerList = new ArrayList<>();
List<Integer> secondInnerList = new ArrayList<>();

Der „firstInnerList“ Und „zweiteInnerList“ Ruf den hinzufügen() Methode, die die angegebenen Elemente an die Listen anhängt:

//creates First inner List
firstInnerList.add(1);
firstInnerList.add(2);
  //creates Second Inner List
secondInnerList.add(3);
secondInnerList.add(4);

Der „firstInnerList“ Und „zweiteInnerList“ werden dann zu „listOfLists” mit der Funktion add(). Der println() Methode gibt das „listOfList” vor dem Austausch, um einen Vergleich zwischen dem Original und dem geänderten zu ermöglichen Liste der Listen:

//Adds the two list to the "List of List"
listOfLists.add(firstInnerList);
listOfLists.add(secondInnerList);
 
System.out.println("Before Swapping :  " + listOfLists);

Der Collections.swap() Methode akzeptiert „listOfLists” und die beiden Indizes zum Austauschen. Der „firstInnerList” wird im gespeichert 0 Index und das „zweiteInnerList” wird gespeichert unter „1“ Index. Wenn die Ausgabe jedoch gedruckt wird, werden die beiden Listen mithilfe von vertauscht tauschen() Methode:

//Swaps the Elements
Collections.swap(listOfLists, 1, 0);
 
//Display Output After Swapping
System.out.println("After Swapping :     " + listOfLists);

Ausgabe

In der folgenden Ausgabe werden die Inhalte der beiden Listen vertauscht, d. h. die Positionen der Listen werden geändert:

Das ist alles aus den Beispielen, um die Funktionsweise der swap()-Methode in Java zu verstehen.

Was passiert mit dem nicht vorhandenen Indexaustausch?

Der „IndexOutOfBoundsException”wird von der geworfen tauschen() -Methode, wenn die zum Austausch bereitgestellten Indizes entweder negativ sind oder nicht in der Liste vorhanden sind. Im folgenden Code ist der angegebene Index negativ. Wir wissen jedoch, dass der Index der Liste, ArrayList, Arrays usw. beim Index 0 beginnt. Daher führt der Zugriff auf einen negativen oder nicht vorhandenen Index zu einer Ausnahme, wie in der Ausgabe des Codes gezeigt:

Alternativen für die Collections.swap()-Methode

Abgesehen von der Collections.swap() Methode gibt es verschiedene Ansätze zum Austauschen von Elementen in Java. Sie können jede der unten aufgeführten Alternativen verwenden, um die gleiche Funktionalität wie die zu erreichen Collections.swap() Methode.

Methode 1: Austauschen mit dem XOR-Operator

In Java wird der XOR-Operator dargestellt/bezeichnet durch „^“ Zeichen. Der XOR-Operator vergleicht die Bits und gibt 1 wenn beide gegensätzlich/kontrastierend sind und umgekehrt. Der Exklusiv oder Der Operator kann auch zum Austauschen der Elemente in Java verwendet werden, wie im folgenden Code gezeigt.

Um die Austauschfunktion mithilfe von zu implementieren XOR Operator importieren Sie zunächst die wesentlichen Abhängigkeiten und Methoden von java.util Paket. Im Inneren hauptsächlich() -Methode werden zwei Variablen vom Typ Integer deklariert und mit den entsprechenden Werten initialisiert. Der drucken() Die Methode zeigt dann die Werte der ganzzahligen Variablen an. In den folgenden Codezeilen weist (b=a) „b“ den Wert „a“ zu. Das XOR wird dann zwischen dem Wert von „b“ und (b=a) gebildet. Es gibt 0 zurück, da der Wert von b gleich b ist. Auch hier wird das XOR auf „a“ und „b“ angewendet und das Ergebnis ist falsch. Dadurch werden die Werte vertauscht, was sich auch in der print-Anweisung zeigt:

package swapMethod;
import java.util.*;
public class swapMethod {
public static void main(String() args) {
      int a = 10 ;
      int b = 11;
      System.out.println("Before Swapping = " + a + "   " + b);
     
      //xor operator
      a = a ^ b ^ (b = a);
      System.out.println(" After   Swapping  =  " + a + "  " + b);
}
}

Ausgabe

Die Ausgabe erfolgt wie folgt:

Methode 2: Austauschen mit der benutzerdefinierten Methode

Bei diesem benutzerdefinierten Ansatz wird eine benutzerdefinierte Funktion definiert, die die beiden Elemente am angegebenen Index des Arrays vertauscht. Der Code lautet wie folgt.

Der „tauschen()”Methode ist die benutzerdefinierte Methode, die drei Argumente akzeptiert, nämlich das Array, in dem die Elemente ausgetauscht werden sollen, das zwei Indizes vom Datentyp Integer, die untereinander ausgetauscht werden sollen. Bei dieser Methode wird ein weiterer Integer-Typ „TempEs wird eine Variable deklariert, die den Wert des angegebenen Indexes speichert. Der „index1“ im „arr“ speichert dann den Wert am „arr(index2)“. Der temporäre Wert wird dem „arr(index2)“ zugewiesen und daher werden die Elemente vertauscht:

public static void swap(int ( ) arr, int index1, int index2)
{
    //swapping the elements
    int temp=arr(index1);
    arr(index1)=arr(index2);
    arr(index2)=temp;

Die for-Schleife wird verwendet, um die vertauschten Elemente des Arrays auszugeben.arr“. Die Schleife beginnt bei ich=0 und endet, wenn der Wert von „ich„übersteigt (wird größer als)“Arr.länge“. Der Wert von „i“ wird in jeder Iteration erhöht. Der drucken() Die Methode gibt den Wert am „i“-Index des „arr“ aus:

//elements are displayed using the for loop
  for (int i=0;i<arr.length;i++)
  {
System.out.print(arr(i) + "    ");
  }
}

Im Inneren hauptsächlich() -Methode wird ein ganzzahliges Array mit den folgenden Werten erstellt. Die for-Schleife durchläuft die Elemente des Arrays, bevor sie ausgetauscht wird:

public static void main(String() args) {
int( )  numArray= {1,2,3,4,5}; //integer array declared
System.out.println("Before Swapping ");
for(int i=0;i<numArray.length;i++)  //prints numArray elements before swapping
{
    System.out.print(numArray(i) + "    ");
}

Die print-Anweisungen ermöglichen einen Vergleich zwischen dem ursprünglichen Array vor und nach dem Austausch. Der tauschen() Es wird eine Funktion aufgerufen, die bereits erläutert wurde. Die drei Argumente werden bereitgestellt, d. h. numArray und die Werte werden an den angegebenen Indizes vertauscht:

System.out.println( "\n" + "----Output After Swapping------ ");
swap(numArray, 1,2); //calls the function
}

Vollständiger Code und Ausgabe

Das ist alles aus diesem Artikel.

Abschluss

Die Methode Collections.swap() tauscht die beiden Werte am angegebenen Index innerhalb der Liste oder Sammlung des Objekts aus, wie in diesem Artikel gezeigt. Die Methode swap() akzeptiert eine Liste und die beiden Indizes, die ausgetauscht werden sollen. In Java können Entwickler neben der Collections.swap()-Methode auch die benutzerdefinierte Methode oder den XOR-Operator verwenden.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen