Метод copyOfRange
Метод copyOfRange класса Arrays копирует
указанный диапазон элементов исходного массива
и возвращает новый массив. Сама исходная коллекция
при этом не изменяется. Первым параметром метод
принимает исходный массив, вторым - начальный индекс
(включается в результат), третьим - конечный индекс
(не включается в результат). Если конечный индекс
выходит за пределы массива, то результирующий массив
дополняется значениями по умолчанию (0 для чисел,
null для объектов).
Синтаксис
Arrays.copyOfRange(original, from, to)
Пример
Давайте скопируем элементы массива с 1 по 4
(конечный индекс не входит в результат):
import java.util.Arrays;
public class Main
{
public static void main(String[] args)
{
int[] arr = {1, 2, 3, 4, 5};
int[] res = Arrays.copyOfRange(arr, 1, 4);
System.out.println(Arrays.toString(res));
}
}
Результат выполнения кода:
[2, 3, 4]
Пример
Давайте скопируем элементы массива, начиная
со второго (он имеет номер 1) и до конца массива:
import java.util.Arrays;
public class Main
{
public static void main(String[] args)
{
int[] arr = {1, 2, 3, 4, 5};
int[] res = Arrays.copyOfRange(arr, 1, arr.length);
System.out.println(Arrays.toString(res));
}
}
Результат выполнения кода:
[2, 3, 4, 5]
Пример
Если конечный индекс выходит за пределы массива,
результирующий массив будет дополнен значениями
по умолчанию. Давайте скопируем элементы с 2
по 7:
import java.util.Arrays;
public class Main
{
public static void main(String[] args)
{
int[] arr = {1, 2, 3, 4, 5};
int[] res = Arrays.copyOfRange(arr, 2, 7);
System.out.println(Arrays.toString(res));
}
}
Результат выполнения кода:
[3, 4, 5, 0, 0]
Пример
Давайте скопируем диапазон элементов из массива строк:
import java.util.Arrays;
public class Main
{
public static void main(String[] args)
{
String[] arr = {"a", "b", "c", "d", "e"};
String[] res = Arrays.copyOfRange(arr, 0, 3);
System.out.println(Arrays.toString(res));
}
}
Результат выполнения кода:
[a, b, c]