Как изменить размер массива java

Аватар пользователя Никита Сысоев
Никита Сысоев
10 октября 2022

В Java размер массива фиксированный, и его изменение сводится к созданию нового массива большего размера и заполнению его элементами старого массива. Как раз класс ArrayList использует эту логику для динамического изменения размера списка. Для быстродействия копирования элементов из старого массива в новый будем использовать системный класс, хотя можно было использовать и обычный цикл.

// Инициализируем массив с 10 элементами
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

// Создаем новый массив с 16 элементами
int[] newArr = new int[arr.length * 3 / 2 + 1];

// Указываем исходный массив, начало позиции для копирования,
// новый массив, позицию для вставки и количество копируемых элементов
System.arraycopy(arr, 0, newArr, 0, arr.length);

// Свободные ячейки автоматически заполняются нулями
System.out.println(Arrays.toString(newArr)); // => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, 0]
0 0

Есть что добавить? Зарегистрируйтесь

или войдите в аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Курсы по программированию в Хекслете

Программирование

Веб-разработка

Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков

Frontend-разработка

Разработка внешнего интерфейса сайтов и веб-приложений и верстка

Создание сайтов

Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails

Backend-разработка

Разработка серверной части сайтов и веб-приложений

Тестирование

Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP

Аналитика данных

Сбор, анализ и интерпретация данных на Python

Интенсивные курсы

Интенсивное обучение для продолжающих

DevOps

Автоматизация настройки локального окружения и серверов, развертывания и деплоя

Математика для программистов

Обучение разделам математики, которые будут полезны при изучении программирования

JavaScript

Разработка сайтов и веб-приложений и автоматизированное тестирование на JS

Тест-драйв

Python

Веб-разработка, автоматическое тестирование и аналитика данных на Python

Java

Веб-разработка и автоматическое тестирование на Java

PHP

Веб-разработка и автоматическое тестирование на PHP

Ruby

Разработка сайтов и веб-приложений на Ruby on Rails

Go

Курсы по веб-разработке на языке Go

Верстка

HTML

Современная верстка с помощью HTML и CSS

SQL

Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД

Git

Система управления версиями Git, регулярные выражения и основы командой строки

Бесплатные курсы

Бесплатные курсы по тестированию, дата-аналитике, верстке, программированию на Python, Java, PHP и JavaScript.

Базы данных

Фреймворки