Java копировать раздел массива
есть ли метод, который скопирует раздел массива (не arraylist) и сделает из него новый массив?
Example:
[1,2,3,4,5]
и вы создаете из него новый массив:
[1,2,3]
есть ли одна строка / методы, которые сделают это?
6 ответов
вот java 1.4 совместимый 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);
вы можете сделать это в одной строке, но у вас не будет ссылки на результат.
чтобы сделать однострочный, вы можете преобразовать это в метод:
private static int[] partArray(int[] array, int size) {
int[] part = new int[size];
System.arraycopy(array, 0, part, 0, size);
return part;
}
тогда звоните так:
int[] part = partArray(array, 3);
существует уже существующий метод в java.util.Arrays
: newArray = Arrays.copyOfRange(myArray, startindex, endindex)
. Или вы можете легко написать свой собственный метод:
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;
}
int [] myArray = [1,2,3,4,5];
int [] holder = new int[size];
System.arraycopy(myArray,0,holder,size);
где 0-индекс исходного массива, с которого начинается копирование. и
size означает количество операций копирования. Что вы можете изменения согласно вашей потребности.
copyOfRange массивов есть и многие другие способы, с помощью которых это может быть достигнуто
Как заявили другие, вы можете использовать массивы.способ copyOfRange. Пример :
String[] main = {"one", "two", "three", "four", "five"};
int from = 2;
int to = 4;
String[] part = Arrays.copyOfRange(main, from, to);
теперь часть будет : {"два", "три", "четыре"}