Verschieben eines Arrays in Java

Rupam Yadav 12 Oktober 2023
  1. Verwenden Sie die for-Schleife und eine temp-Variable, um ein Array in Java zu verschieben
  2. Verwenden Sie die Methode skip(), um ein Array in Java 8 zu verschieben
  3. Verwenden Sie die Collections.rotate(List<type> list, int distance), um ein Array in Java zu verschieben
Verschieben eines Arrays in Java

In diesem Artikel werden wir die Möglichkeiten zum Verschieben eines Elements eines Arrays in Java durchgehen.

Verwenden Sie die for-Schleife und eine temp-Variable, um ein Array in Java zu verschieben

In diesem Code haben wir eine array-Variable, die eine Sammlung von Variablen vom Typ int ist. Hier versuchen wir, das durch die Variable n gegebene Element am Index 2 zu ziehen, und es geht auf den Index Null des Arrays.

Dazu übergeben wir array und index an die Methode ShiftToRight, die aus einer for-Schleife besteht. Wir speichern unser Element am Index n in einer temp-Variablen.

temp = a[n];
i.e.temp = [ 2 ] i.e.temp = a[2] i.e.temp = 3;

Die erste Iteration:

for (i = 2; i > 0; i--) i.e.for (i = 2; 2 > 0; i--)
a[i] = a[i - 1];
i.e.a[2] = a[2 - 1] i.e.a[2] = a[1] i.e.a[2] = 2

Die zweite Iteration:

for (i = 1; 1 > 0; i--) ```

```java
a[i] = a[i - 1];
i.e.a[1] = a[1 - 1] i.e.a[1] = a[0] i.e.a[1] = 1

Da i(0) nicht grösser als 0 ist, verlassen wir die for-Schleife.

a[0] = temp i.e.a[0] = 3

Die Elemente im array, die dem übergebenen Indexwert folgen, bleiben unverändert. In diesem Fall bleiben die letzten beiden Elemente nach dem Verschieben an ihrem ursprünglichen Index.

import java.util.Arrays;

public class ShiftTest {
  public static void main(String args[]) {
    int[] array = {1, 2, 3, 4, 5};
    int n = 2;
    System.out.println("Array " + Arrays.toString(array));
    ShiftToRight(array, n);
  }
  public static void ShiftToRight(int a[], int n) {
    int temp = a[n];

    for (int i = n; i > 0; i--) {
      a[i] = a[i - 1];
    }

    a[0] = temp;

    System.out.println("Array after shifting to right by one : " + Arrays.toString(a));
  }
}

Ausgabe:

Array [1, 2, 3, 4, 5]
Array after shifting to right by one : [3, 1, 2, 4, 5]

Verwenden Sie die Methode skip(), um ein Array in Java 8 zu verschieben

Die Methode skip() in Java 8 verwirft die Anzahl n der Elemente im Stream und gibt einen Stream zurück, der aus den restlichen Elementen besteht. Enthält der Stream weniger als n Elemente, gibt er einen leeren Stream zurück.

Wir konvertieren das array mit der Methode Arrays.stream() in einen Stream und rufen die Methode skip() auf, indem wir 1 an ihn übergeben. Es überspringt das erste Element des Arrays. Später drucken wir im lambda-Format jedes Element des zurückgegebenen Streams.

import java.util.Arrays;
public class TestArray {
  public static void main(String[] args) {
    int[] array = {1, 2, 3, 4, 5, 6, 7};
    Arrays.stream(array).skip(1).forEach(System.out::println);
  }
}

Ausgabe:

ShiftedArray: [2, 3, 4, 5, 6, 7]

Verwenden Sie die Collections.rotate(List<type> list, int distance), um ein Array in Java zu verschieben

Um unser Array um eins zu verschieben, verwenden wir diese Methode, die die in einer Liste von Collection angegebenen Elemente um einen bestimmten Abstand dreht. Wir verwenden Arrays.asList(), um unser array in eine Liste umzuwandeln. Die Liste wird bei Index 2 rotiert.

Es verschiebt jedes Element der Liste um den angegebenen Abstand, und das Element, dessen Index größer als die angegebene Länge ist, wird an den Anfang der Liste verschoben.

import java.util.Arrays;
import java.util.Collections import java.util.List;

public class Test11 {
  public static void main(String args[]) {
    String[] strArray = {"One", "Two", "Three", "Four", "Five"};
    System.out.println("Original List : " + Arrays.toString(strArray));

    List<String> list = Arrays.asList(strArray);
    Collections.rotate(list, 2);

    System.out.println("Rotated List: " + list);
  }
}

Ausgabe:

Original List : [One, Two, Three, Four, Five]
Rotated List: [Four, Five, One, Two, Three]
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