Arrays in Java vertauschen

Rupam Yadav 12 Oktober 2023
  1. Verwenden Sie numerische Operatoren, um zwei Arrays in Java zu vertauschen
  2. Bitweise Operatoren verwenden, um zwei Arrays in Java zu vertauschen
  3. Verwenden Sie Collections.swap(), um zwei Elemente eines Arrays in Java zu vertauschen
Arrays in Java 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 Yadav avatar Rupam Yadav avatar

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

Verwandter Artikel - Java Array