/
Вопросы и ответы
/
Java
/

Как добавить значение в массив java

Как добавить значение в массив java

5 лет назад

Человек-Молекула

Ответы

1

Значения массиву можно присваивать различными способами.

Используя индексацию: можно присвоить значение конкретному элементу массива, указав его индекс в квадратных скобках. Например:

1
2
3
4
int[] arr = new int[3];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;

Используя инициализацию: можно создать массив с заранее заданными значениями, разделяя их запятыми в фигурных скобках:

1
int[] arr = {1, 2, 3};

Используя циклы: можно заполнить массив значениями, используя циклы:

1
2
3
4
int[] arr = new int[3];
for (int i = 0; i < arr.length; i++) {
    arr[i] = i + 1;
}

Здесь мы создаем массив arr длиной 3 и заполняем его значениями от 1 до 3, используя цикл for


Используя методы класса Arrays: класс Arrays в Java предоставляет ряд методов для работы с массивами, в том числе для заполнения массива значениями:

1
2
int[] arr = new int[3];
Arrays.fill(arr, 1);

Здесь мы создаем массив arr длиной 3 и заполняем его значениями 1, используя метод fill из класса Arrays

Какой способ выбрать зависит от вашей задачи и предпочтений в программировании.

4 года назад

Иван Полежаев

0

Размер массива в Java задаётся при создании и не меняется. Записать значение можно только в существующую ячейку:

1
2
3
4
int[] numbers = new int[3];
numbers[0] = 10;
numbers[1] = 20;
System.out.println(Arrays.toString(numbers)); // [10, 20, 0]

Пустые ячейки int заполнены нулями, у объектов — null. Запись за пределы массива — numbers[3] = 40 — выдаст ArrayIndexOutOfBoundsException.

Если элементов будет неизвестно сколько: ArrayList

1
2
3
4
5
6
7
8
import java.util.ArrayList;
import java.util.List;

List<Integer> list = new ArrayList<>();
list.add(10);
list.add(20);
list.add(0, 5);           // вставить в начало
System.out.println(list); // [5, 10, 20]

ArrayList растёт сам. В большинстве задач с добавлением элементов используют его.

Обратно в массив: int[] arr = list.stream().mapToInt(Integer::intValue).toArray();.

Добавить элемент в конец массива

Создать новый массив на один элемент больше:

1
2
3
4
int[] numbers = {10, 20};
numbers = Arrays.copyOf(numbers, numbers.length + 1);
numbers[numbers.length - 1] = 30;
System.out.println(Arrays.toString(numbers)); // [10, 20, 30]

Каждый такой вызов копирует весь массив. Для частых добавлений это медленно — берите ArrayList.

Вставить в середину массива

1
2
3
4
5
6
7
8
9
int[] src = {1, 2, 4};
int[] dst = new int[src.length + 1];
int pos = 2;

System.arraycopy(src, 0, dst, 0, pos);
dst[pos] = 3;
System.arraycopy(src, pos, dst, pos + 1, src.length - pos);

System.out.println(Arrays.toString(dst)); // [1, 2, 3, 4]

Заполнить массив сразу

1
2
3
int[] a = {1, 2, 3};          // при объявлении
int[] b = new int[5];
Arrays.fill(b, 7);            // [7, 7, 7, 7, 7]

Массивы и коллекции разбирают в бесплатном курсе «Основы Java».

3 дня назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845