Класс Array
Класс Array из пакета java.lang.reflect позволяет
создавать массивы динамически, получать и изменять их элементы,
а также узнавать длину массива. Все методы класса Array
являются статическими. В первый параметр методов обычно передается
сам массив, во второй - индекс элемента, а в третий - значение
для установки. Класс Array часто используется в рефлексии,
когда тип массива неизвестен на этапе компиляции.
Синтаксис
Array.newInstance(Class<?> componentType, int length)
Array.get(Object array, int index)
Array.set(Object array, int index, Object value)
Array.getLength(Object array)
Пример
Давайте создадим массив целых чисел длиной 5
и заполним его значениями:
import java.lang.reflect.Array;
public class Main
{
public static void main(String[] args)
{
int[] arr = (int[]) Array.newInstance(int.class, 5);
for (int i = 0; i < Array.getLength(arr); i++)
{
Array.set(arr, i, i + 1);
}
for (int i = 0; i < arr.length; i++)
{
System.out.println(Array.get(arr, i));
}
}
}
Результат выполнения кода:
1
2
3
4
5
Пример
Давайте создадим массив строк и выведем его элементы в одну строку через пробел:
import java.lang.reflect.Array;
public class Main
{
public static void main(String[] args)
{
String[] arr = (String[]) Array.newInstance(String.class, 3);
Array.set(arr, 0, "abcde");
Array.set(arr, 1, "12345");
Array.set(arr, 2, "hello");
for (int i = 0; i < Array.getLength(arr); i++)
{
System.out.print(Array.get(arr, i) + " ");
}
}
}
Результат выполнения кода:
"abcde 12345 hello "
Пример
Давайте получим длину массива с помощью метода
getLength и сравним ее с полем length:
import java.lang.reflect.Array;
public class Main
{
public static void main(String[] args)
{
int[] arr = {1, 2, 3, 4, 5};
int len1 = Array.getLength(arr);
int len2 = arr.length;
System.out.println(len1);
System.out.println(len2);
}
}
Результат выполнения кода:
5
5