Die Länge eines Arrays in Java ist unveränderlich. Sie müssen also das gewünschte Teil als neues Array kopieren.
Verwenden Sie die copyOfRange
Methode aus der Klasse java.util.Arrays :
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, exklusiv. (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)
Arrays.copyOfRange(Thread.currentThread().getStackTrace(),1,255)
da ich anstelle von 255 nicht Integer.MAX_VALUE verwenden kann, falls ich nicht die tatsächliche Länge erhalten möchteendIndex
größer als die Größe des Arrays ist, das als erstes Argument übergeben wurde. Wenn Sie also eine vollständige Kopie wünschen, erstellen Sie eine Variable, die auf dieses Array verweist, und verwenden SieArrays.copyOfRange(var, 0, var.length)
oderArrays.copyOf(var, var.length)
Arrays.copyOfRange(Thread.currentThread().getStackTrace(),1,Short.MAX_VALUE)
ArrayIndexOutOfBoundsException
.Sie können Ihr Array als Liste umschließen und eine Unterliste davon anfordern.
quelle
Ja, du kannst verwenden Arrays.copyOfRange verwenden
Es funktioniert ungefähr genauso (beachten Sie, dass es eine Kopie gibt: Sie ändern das ursprüngliche Array nicht).
quelle
List
und ein verwenden,subList
wie in der Antwort von @ K-ballo beschrieben.Du kannst es versuchen:
Siehe javadoc für System .
quelle
Wenn Sie Java 1.6 oder höher verwenden, können Sie
Arrays.copyOfRange
einen Teil des Arrays kopieren. Aus dem Javadoc:Hier ist ein einfaches Beispiel :
quelle
Check out copyOfRange ; und Beispiel:
quelle
Sie können so etwas verwenden:
Arrays#copyOfRange
quelle
Sie können die
subList(int fromIndex, int toIndex)
Methode für Ihre Ganzzahlen arr verwenden, ungefähr so:Ausgabe wird sein :
2 3
.Beachten Sie, dass die
subList(int fromIndex, int toIndex)
Methode für die 2. empfangene Variable (var2 - 1) minus 1 ausführt. Ich weiß nicht genau warum, aber genau das passiert, um möglicherweise die Wahrscheinlichkeit zu verringern, dass die Größe des Arrays überschritten wird.quelle