У меня есть массив целых чисел в Java, я хотел бы использовать только его часть. Я знаю, что в Python вы можете сделать что-то вроде этого массива [index:], и он возвращает массив из индекса. Возможно ли что-то подобное в Java.
275
Длина массива в Java неизменна. Итак, вам нужно скопировать нужную часть в виде нового массива.
Используйте copyOfRange
метод из класса java.util.Arrays :
int[] newArray = Arrays.copyOfRange(oldArray, startIndex, endIndex);
startIndex - начальный индекс диапазона, который будет скопирован, включительно.
endIndex - окончательный индекс диапазона, который будет скопирован, исключительный. (Этот индекс может лежать вне массива)
Например:
//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)
поскольку вместо 255 я не могу использовать Integer.MAX_VALUE, в случае, если я не хочу получать реальную длинуendIndex
размер, превышающий размер массива, переданного в качестве первого аргумента. Итак, если вам нужна полная копия, создайте переменную,Arrays.copyOfRange(var, 0, var.length)
Arrays.copyOf(var, var.length)
Arrays.copyOfRange(Thread.currentThread().getStackTrace(),1,Short.MAX_VALUE)
ArrayIndexOutOfBoundsException
.Вы можете заключить свой массив в список и запросить его подсписок.
источник
Да, вы можете использовать Arrays.copyOfRange
Это делает примерно то же самое (обратите внимание, что есть копия: вы не меняете исходный массив).
источник
List
и a,subList
как указано в ответе @ K-bal.Можешь попробовать:
См. Javadoc для системы .
источник
Если вы используете Java 1.6 или выше, вы можете использовать
Arrays.copyOfRange
для копирования части массива. От Javadoc:Вот простой пример :
источник
Проверьте copyOfRange ; и пример:
источник
Вы можете использовать что-то вроде этого:
Arrays#copyOfRange
источник
Вы можете использовать
subList(int fromIndex, int toIndex)
метод для целых чисел arr, что-то вроде этого:Выход будет:
2 3
.Обратите внимание, что
subList(int fromIndex, int toIndex)
метод выполняет минус 1 для 2-ой переменной, которую он получает (var2 - 1), я точно не знаю, почему, но именно это и происходит, возможно, чтобы уменьшить вероятность превышения размера массива.источник