Ich habe ein Array von Integers in Java, ich möchte nur einen Teil davon verwenden. Ich weiß, dass man in Python so etwas wie array[index:] machen kann und es gibt das Array ab dem Index zurück. Ist so etwas auch in Java möglich.
Antworten
Zu viele Anzeigen?Die Länge eines Arrays in Java ist nicht veränderbar. Sie müssen also den gewünschten Teil in ein neues Array kopieren.
Utilice copyOfRange
Methode von java.util.Arrays Klasse:
int[] newArray = Arrays.copyOfRange(oldArray, startIndex, endIndex);
startIndex ist der Anfangsindex des zu kopierenden Bereichs, einschließlich.
endIndex ist der endgültige Index des zu kopierenden Bereichs, ausschließlich. (Dieser Index kann außerhalb des Arrays liegen)
Z.B.:
//index 0 1 2 3 4
int[] arr = {10, 20, 30, 40, 50};
Arrays.copyOfRange(arr, 0, 2); // returns {10, 20}
Arrays.copyOfRange(arr, 1, 4); // returns {20, 30, 40}
Arrays.copyOfRange(arr, 2, arr.length); // returns {30, 40, 50} (length = 5)
Ja, Sie können die Arrays.copyOfRange
Es tut ungefähr das Gleiche (beachten Sie, dass es eine Kopie gibt: Sie ändern das ursprüngliche Array nicht).
Sie können es versuchen:
System.arraycopy(sourceArray, 0, targetArray, 0, targetArray.length);// copies whole array
// copies elements 1 and 2 from sourceArray to targetArray
System.arraycopy(sourceArray, 1, targetArray, 0, 2);
Véase javadoc für System .
Wenn Sie Java 1.6 oder höher verwenden, können Sie Arrays.copyOfRange
um einen Teil des Arrays zu kopieren. Aus der Javadoc:
Kopiert den angegebenen Bereich des angegebenen Arrays in ein neues Array. Der Anfangsindex des Bereichs (from) muss zwischen Null und
original.length
, einschließlich. Der Wert beioriginal[from]
wird in das erste Element der Kopie gesetzt (es sei dennfrom == original.length
ofrom == to
). Die Werte der nachfolgenden Elemente des ursprünglichen Arrays werden in die nachfolgenden Elemente der Kopie eingefügt. Der letzte Index des Bereichs (to
), die größer oder gleich sein muss alsfrom
kann größer sein alsoriginal.length
in diesem Fallfalse
wird in allen Elementen der Kopie platziert, deren Index größer oder gleich istoriginal.length - from
. Die Länge des zurückgegebenen Arrays istto - from
.
Hier ist ein einfaches Beispiel :
/**
* @Program that Copies the specified range of the specified array into a new
* array.
* CopyofRange8Array.java
* Author:-RoseIndia Team
* Date:-15-May-2008
*/
import java.util.*;
public class CopyofRange8Array {
public static void main(String[] args) {
//creating a short array
Object T[]={"Rose","India","Net","Limited","Rohini"};
// //Copies the specified short array upto specified range,
Object T1[] = Arrays.copyOfRange(T, 1,5);
for (int i = 0; i < T1.length; i++)
//Displaying the Copied short array upto specified range
System.out.println(T1[i]);
}
}
- See previous answers
- Weitere Antworten anzeigen