Sposta un array in Java

Rupam Yadav 12 ottobre 2023
  1. Usa il cicli for e una variabile temp per spostare un array in Java
  2. Usa il metodo skip() per spostare un array in Java 8
  3. Usa Collections.rotate(List<type> list, int distance) per spostare un array in Java
Sposta un array in Java

In questo articolo, esamineremo i modi per spostare un elemento di un array in Java.

Usa il cicli for e una variabile temp per spostare un array in Java

In questo codice abbiamo una variabile array che è una raccolta di variabili di tipo int. Qui, stiamo cercando di estrarre l’elemento all’indice 2 dato dalla variabile n, e va all’indice zero dell’array.

Per raggiungere questo scopo, passiamo array e index nel metodo ShiftToRight che consiste in un cicli for. Archiviamo il nostro elemento all’indice n in una variabile temp.

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

La prima iterazione:

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

La seconda iterazione:

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

Poiché i(0) non è maggiore di 0, usciamo dal cicli for.

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

Gli elementi nell’array che seguono il valore dell’indice passato rimangono invariati. In questo caso, gli ultimi due elementi rimangono al loro indice originale dopo lo spostamento.

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));
  }
}

Produzione:

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

Usa il metodo skip() per spostare un array in Java 8

Il metodo skip() in Java 8 scarta il numero n di elementi nel flusso e restituisce un flusso costituito dagli elementi rimanenti. Se il flusso contiene meno di n elementi, restituisce un flusso vuoto.

Convertiamo l’array in uno stream usando il metodo Arrays.stream() e chiamiamo il metodo skip() passandogli 1. Salta il primo elemento dell’array. Successivamente, utilizzando il formato lambda, stampiamo ogni elemento del flusso restituito.

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);
  }
}

Produzione:

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

Usa Collections.rotate(List<type> list, int distance) per spostare un array in Java

Per spostare il nostro array di uno, usiamo questo metodo che ruota gli elementi dati in un elenco di Collection di una determinata distanza. Usiamo Arrays.asList() per convertire il nostro array in List. La lista viene ruotata all’indice 2.

Sposta ogni elemento della lista della distanza specificata e l’elemento il cui indice è maggiore della lunghezza data viene spostato all’inizio della lista.

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);
  }
}

Produzione:

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

Articolo correlato - Java Array