Arrays in Java vertauschen
- Verwenden Sie numerische Operatoren, um zwei Arrays in Java zu vertauschen
- Bitweise Operatoren verwenden, um zwei Arrays in Java zu vertauschen
-
Verwenden Sie
Collections.swap()
, um zwei Elemente eines Arrays in Java zu vertauschen
In diesem Artikel werden wir uns verschiedene Ansätze ansehen, um zwei Arrays in Java zu vertauschen. Anstatt eine dritte Variable zu verwenden, um zwei Arrays zu vertauschen, können wir arithmetische und bitweise Operatoren verwenden.
Verwenden Sie numerische Operatoren, um zwei Arrays in Java zu vertauschen
In dem unten angegebenen Code haben wir zwei Arrays, a
und b
, die Werte vom Typ int
enthalten. Die Länge der beiden Arrays ist gleich.
Wir verwenden arithmetische Operatoren, um a
und b
zu vertauschen. Für die erste Iteration haben wir i
gleich 0
und die Bedingung (i<2)
, so dass die arithmetischen Anweisungen innerhalb der Schleife ausgeführt werden, bis die Bedingung nicht erfüllt ist.
a[0] = a[0] - b[0] = 5 - 4 = 1
b[0] = a[0] + b[0] = 1 + 4 = 5
a[0] = GetAbsoluteValue(a[0] - b[0]) = 1 - 5 = GetAbsoluteValue(-4) = 4
Math.abs()
gibt den Absolutwert des übergebenen Arguments zurück. Wenn das Argument nicht negativ ist, wird das Argument zurückgegeben, und wenn es negativ ist, wird die Negation des Arguments zurückgegeben. Bei der zweiten und dritten Iteration funktioniert dies auf die gleiche Weise.
import java.util.Arrays;
public class SwapArrayNumeric {
public static void main(String[] args) throws Exception {
int[] a = {5, 9};
int[] b = {4, 3};
System.out.println("a[] before swapping : " + Arrays.toString(a));
System.out.println("b[] before swapping : " + Arrays.toString(b));
for (int i = 0; i < a.length; i++) {
a[i] = a[i] - b[i];
b[i] = a[i] + b[i];
a[i] = GetAbsoluteValue(a[i] - b[i]);
}
System.out.println("a[] after swapping : " + Arrays.toString(a));
System.out.println("b[] after swapping : " + Arrays.toString(b));
}
public static int GetAbsoluteValue(int a) {
return Math.abs(a);
}
}
Ausgabe
a[] before swapping : [5, 9]
b[] before swapping : [4, 3]
a[] after swapping : [4, 3]
b[] after swapping : [5, 9]
Bitweise Operatoren verwenden, um zwei Arrays in Java zu vertauschen
Der bitweise XOR
oder ^
ist ein binärer Operator, der Bit für Bit XOR
einer Eingabe zurückgibt. Wenn die entsprechenden Bits unterschiedlich sind, ergibt er 1, sonst 0. Für die erste Iteration haben wir firstArr[0] = firstArr[0] ^ secondArr[0] = 2 ^ 6
. Die binäre Darstellung von 2 ist 0010
, und 6 ist 0110
.
Bitweises XOR
von 2 und 6 ist
0010 ^ 0110 = 0100 = 4 (in decimal)
firstArr[0] = firstArr[0] ^ secondArr[0] = 2 ^ 6 = 4
secondArr[0] = firstArr[0] ^ secondArr[0] = 4 ^ 6 = 2
firstArr[0] = firstArr[0] ^ secondArr[0] = 4 ^ 2 = 6
Daher können wir die Elemente des Arrays mit den bitweisen Operatoren vertauschen.
import java.util.Arrays;
public class SwapArrayBitwise {
public static void main(String[] args) throws Exception {
int[] firstArr = {2, 4};
int[] secondArr = {6, 3};
System.out.println("firstArr before swapping : " + Arrays.toString(firstArr));
System.out.println("secondArr before swapping : " + Arrays.toString(secondArr));
for (int i = 0; i < firstArr.length; i++) {
firstArr[i] = firstArr[i] ^ secondArr[i];
secondArr[i] = firstArr[i] ^ secondArr[i];
firstArr[i] = firstArr[i] ^ secondArr[i];
}
System.out.println("firstArr after swapping : " + Arrays.toString(firstArr));
System.out.println("secondArr after swapping : " + Arrays.toString(secondArr));
}
}
Ausgabe:
firstArr before swapping : [2, 4]
secondArr before swapping : [6, 3]
firstArr after swapping : [6, 3]
secondArr after swapping : [2, 4]
Verwenden Sie Collections.swap()
, um zwei Elemente eines Arrays in Java zu vertauschen
Die Methode swap()
der Klasse Collections
vertauscht die Elemente an der angegebenen Position in der angegebenen Liste. Wir wandeln unser firstArr
mit Arrays.asList()
in eine Liste um und übergeben sie dann mit den Positionen 0
und 2
an die Methode swap()
. Sie vertauscht das Wort bei Index 0 mit dem Wort bei Index 2.
import java.util.Collections;
import java.util.List;
public class SwapTwoElements {
public static void main(String[] args) throws Exception {
String[] firstArr = {"Hello", "World", "Happy", "Coding"};
System.out.println("first[] before swapping : " + Arrays.toString(firstArr));
List<String> a = Arrays.asList(firstArr);
Collections.swap(a, 0, 2);
System.out.println("first[] after swapping : " + Arrays.toString(firstArr));
}
}
Ausgabe
first[] before swapping : [Hello, World, Happy, Coding]
first[] after swapping : [Happy, World, Hello, Coding]
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn