Esiste un metodo che copierà una sezione di un array (non un array) e creerà un nuovo array da esso?Sezione copia Java dell'array
Example:
[1,2,3,4,5]
e si crea un nuovo array da esso:
[1,2,3]
Esistono One Line/metodi che lo farà?
Esiste un metodo che copierà una sezione di un array (non un array) e creerà un nuovo array da esso?Sezione copia Java dell'array
Example:
[1,2,3,4,5]
e si crea un nuovo array da esso:
[1,2,3]
Esistono One Line/metodi che lo farà?
Ecco un Java 1.4 compatibile 1.5-liner:
int[] array = { 1, 2, 3, 4, 5 };
int size = 3;
int[] part = new int[size];
System.arraycopy(array, 0, part, 0, size);
Si potrebbe fare questo in una sola riga, ma non avrebbe un riferimento alla risultato.
Per fare una battuta, si potrebbe refactoring questo in un metodo:
private static int[] partArray(int[] array, int size) {
int[] part = new int[size];
System.arraycopy(array, 0, part, 0, size);
return part;
}
quindi chiamare in questo modo:
int[] part = partArray(array, 3);
vedere il metodo Arrays.copyOfRange
Arrays#copyOfRange fa il trucco.
int [] myArray = [1,2,3,4,5];
int [] holder = new int[size];
System.arraycopy(myArray,0,holder,size);
dove 0 rappresenta l'indice della matrice di origine da cui deve iniziare la copia. e
dimensioni vuote per il numero di operazioni di copia. Che puoi cambiare in base alle tue necessità.
copyOfRange di matrici c'è e molti altri modi con cui questo può essere realizzato
+1 per il tuo commento. – Lion
Manca un argomento perché richiede un altro int per destinationPosition. –
C'è un metodo preesistente nella java.util.Arrays
: newArray = Arrays.copyOfRange(myArray, startindex, endindex)
. Oppure si potrebbe facilmente scrivere il proprio metodo:
public static array[] copyOfRange(array[] myarray, int from, int to) {
array[] newarray = new array[to - from];
for (int i = 0 ; i < to - from ; i++) newarray[i] = myarray[i + from];
return newarray;
}
Come altri hanno detto, è possibile utilizzare il metodo Arrays.copyOfRange . Un esempio è:
String[] main = {"one", "two", "three", "four", "five"};
int from = 2;
int to = 4;
String[] part = Arrays.copyOfRange(main, from, to);
Ora parte saranno: { "due", "tre", "quattro"}
Eventuali duplicati di [ottenere solo parte di un array in Java?] (http://stackoverflow.com/questions/11001720/get-only-part-of-an-array-in-java) – 32cupo