Sposta un array in Java
-
Usa il cicli
for
e una variabiletemp
per spostare un array in Java -
Usa il metodo
skip()
per spostare un array in Java 8 -
Usa
Collections.rotate(List<type> list, int distance)
per spostare 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]
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