- Как создать динамический массив в java
- Java-массивы. Динамические массивы в Java
- Как происходит объявление массива в Java
- Создание массива
- Длина массива length
- Инициализация массива
- Динамический массив в Java
- Динамическое создание массивов java
- Learn Latest Tutorials
- Preparation
- Trending Technologies
- B.Tech / MCA
- Javatpoint Services
- Training For College Campus
- Создать динамический массив в Java
- Создайте динамический массив с помощью пользовательской логики в Java
- Сопутствующая статья - Java Array
Как создать динамический массив в java
В Java динамический массив создается с использованием класса ArrayList . Этот класс находится в пакете java.util и обеспечивает динамическое управление массивом. Чтобы создать динамический массив, нужно выполнить следующие шаги:
- Создайте объект класса ArrayList , указав тип элементов, которые будут храниться в массиве. Например, для создания массива целых чисел:
ArrayListInteger> nums = new ArrayList<>();
nums.add(1); nums.add(2); nums.add(3);
int firstElement = nums.get(0); // 1 int secondElement = nums.get(1); // 2 int thirdElement = nums.get(2); // 3
- Динамический массив автоматически расширяется при добавлении новых элементов. Например, чтобы добавить еще один элемент в конец массива:
Java-массивы. Динамические массивы в Java
Массив — набор определённого числа однотипных элементов. Использование массива позволяет нам не создавать большое количество переменных, а создать всего лишь одну переменную, имеющую вид массива. В отличие от стандартных переменных массивы содержат больше, чем одно значение. В программировании это очень важно, ведь при разработке софта может потребоваться огромное количество данных.
Лучшая ассоциация для массива — стена с почтовыми ячейками. Каждая ячейка помечена квартирными номерами (индексы массива), внутри лежат газеты и письма (элементы массива), а получить содержимое можно, открыв ящик ключом (обратиться к содержимому по позиции элемента в массиве через индекс). При этом содержимое массива может включать в себя как простые данные (это одномерный массив), так и несколько вложенных массивов (это многомерный массив).
Массив однороден, и во всех ячейках должны храниться элементы одного типа. Если это int, то мы говорим про массив целых чисел, который может содержать лишь целые числа. Массив строк будет содержать лишь строки, а массив, состоящий из элементов созданного класса Dog, может содержать лишь объекты Dog.
Как происходит объявление массива в Java
Как и любую переменную в Java, массив надо объявить. Для этого есть два способа. Первый больше отвечает стилю Java, второй является наследием языка C.
Вне зависимости от способа, dataType — это тип переменных в массиве. Посмотрите внимательно на примеры — в них объявлены 2 массива. Один предназначен для целых чисел типа int, другой — для объектов типа Object.
Можно сказать, что во время объявления массива ему присваивается как имя (ArrayName), так и тип переменных.
Создание массива
Чтобы создать массив в Java, нужно зарезервировать место в памяти, для чего используем оператор new:
Здесь у нас typeOfArray — тип массива, length — длина массива или число ячеек, выраженное в целых числах (int). Но мы лишь выделили память под массив, не связав его ни с какой переменной, ранее объявленной. Как правило, сначала массив объявляют, потом создают:
int[] myArray; // объявление массива myArray = new int[10]; // создание массива, выделение памяти на 10 элементов типа intИтак, объявлен массив из целых чисел с именем myArray. После объявления мы сообщили, что массив состоит из 10 ячеек. Но можно использовать и более сокращённый синтаксис:
int[] myArray = new int[10]; // объявление и выделение памяти за один разЧто же, мы создали массив с помощью new. После этого в его ячейках будут записаны значения по умолчанию. Например, для численных типов — это нули (0), для boolean — false, а если говорить о ссылочных типах, то null. Это значит, что после выполнения кода
у нас на выходе будет массив из 10 целых чисел, причём в каждой ячейке будет записан 0.
Длина массива length
Длина массива — число элементов, под которое этот массив рассчитан. Длину массива изменить после создания нельзя.
Ещё нюанс: элементы массива в Java нумеруются с нуля. Таким образом, массив на 10 элементов состоит из чисел в диапазоне 0-9.
Если нужно получить доступ к длине нашего массива, используют переменную length:
int[] myArray = new int[10]; // создали массив, присвоили имя myArray System.out.println(myArray.length); // вывели в консоль длину массиваИнициализация массива
Инициализация — это заполнение массива конкретными данными, а не данными по умолчанию.
Нижеследующий код позволит создать массив, включающий в себя 4 сезона года. Также мы выполним заполнение массива строками-названиями сезонов:
String[] seasons = new String[4]; /* выполнили объявление и создание массива из 4 строк, где по умолчанию записано null, ведь строка — ссылочный тип данных*/ seasons[0] = "Winter"; /* в первую ячейку записали строку Winter*/ seasons[1] = "Spring"; /* во вторую ячейку (номер 1) записали строку Spring и т. д.*/ seasons[2] = "Summer"; seasons[3] = "Autumn";Так мы записали названия всех сезонов. Но в принципе можно всё сделать проще, совместив инициализацию и объявление:
String[] seasons = new String[] ;Или даже так, опустив оператор new:
Динамический массив в Java
Минус массива — статичность, то есть необходимость задавать размер заранее. Для этого и придумали динамический массив, который может менять размер в процессе выполнения программы. Например, статические массивы работают по следующей схеме:
А динамические массивы в Java функционируют несколько иначе:
Так как для копирования массива используется специальная нативная функция, проблем с «переездом» не возникает.
В общем, как вы уже догадались, динамические массивы применяются во время обработки наборов однородных данных, размер которых на момент написания программы нам неизвестен.
Динамическое создание массивов java
Learn Latest Tutorials
Preparation
Trending Technologies
B.Tech / MCA
Javatpoint Services
JavaTpoint offers too many high quality services. Mail us on h[email protected], to get more information about given services.
- Website Designing
- Website Development
- Java Development
- PHP Development
- WordPress
- Graphic Designing
- Logo
- Digital Marketing
- On Page and Off Page SEO
- PPC
- Content Development
- Corporate Training
- Classroom and Online Training
- Data Entry
Training For College Campus
JavaTpoint offers college campus training on Core Java, Advance Java, .Net, Android, Hadoop, PHP, Web Technology and Python. Please mail your requirement at [email protected].
Duration: 1 week to 2 week
Like/Subscribe us for latest updates or newsletter
Создать динамический массив в Java
Массив - это структура данных фиксированного размера, размер которой нельзя изменить после объявления. Динамический массив дает нам возможность создавать массивы динамических размеров. Мы можем соответственно увеличивать и уменьшать эти размеры, и в этой статье мы обсудим, как создать динамический массив Java.
Создайте динамический массив с помощью пользовательской логики в Java
В этом примере мы используем настраиваемую логику, которая включает методы для добавления элемента в конец массива или по любому индексу. При заполнении массива размер массива увеличивается в два раза. Мы также удаляем и сжимаем массив в процессе.
Мы используем два класса для проверки логики динамического массива; первый - это DynamicClass , а второй - DynamicArrayTest . В DynamicArrayTest мы создаем массив типа int intArray и две переменные int с именами size и capacity . Размер массива - это количество элементов в нем, а емкость массива - это общее пространство в нем.
Создаем конструктор класса DynamicArrayTest и инициализируем intArray массивом int размером 2 . Затем мы инициализируем size 0 и capacity как 2 . Наконец, чтобы добавить элемент в последнюю позицию массива, мы создаем метод addElementToArray() , который принимает в качестве параметра элемент int . В этой функции мы сначала проверяем, совпадают ли size и capacity массива.
Если это правда, мы вызываем функцию boostArraySize() , потому что массив заполнен. В методе increaseArraySize() мы создаем пустой массив int tempArray для временного хранения элементов массива и сравниваем size и capacity . Мы инициализируем tempArray массивом и устанавливаем его размер в два раза больше текущей емкости массива.
В increaseArraySize() мы проверяем, больше ли capacity или равно 0 . Затем мы вызываем метод System.arraycopy() , который копирует элементы одного массива в другой массив. Здесь мы указываем массив, который нужно скопировать, начальный индекс для копирования, массив, в который мы хотим скопировать элементы, целевую позицию и размер нового массива, который нам нужен. После этого мы повторно инициализируем intArray с элементами tempArray и увеличиваем размер capacity .
Теперь мы создаем метод для удаления элемента и называем его removeElement() . В этой функции мы проверяем size массива, если он больше нуля. Затем мы заменяем последний элемент массива нулем и уменьшаем размер на единицу. Обратите внимание, что этот метод удаляет только последний элемент массива.
Когда массив заполнен, его емкость увеличивается, и пустые пространства заполняются. Эти пустые неиспользуемые пространства могут увеличить использование памяти и мусор в памяти. Чтобы исправить это, мы удалим пустые индексы с помощью функции shrinkSize() . Здесь мы создаем временный массив и копируем в функцию все элементы intArray , размер которых совпадает с его элементами, а затем копируем элементы массива обратно в intArray .
class DynamicArrayTest int[] intArray; int size; int capacity; public DynamicArrayTest() intArray = new int[2]; size = 0; capacity = 2; > public void addElementToArray(int a) if (size == capacity) increaseArraySize(); > intArray[size] = a; size++; > public void increaseArraySize() int[] tempArray = null; if (size == capacity) tempArray = new int[capacity * 2]; if (capacity >= 0) System.arraycopy(intArray, 0, tempArray, 0, capacity); > > > intArray = tempArray; capacity = capacity * 2; > public void shrinkSize() int[] temp; if (size > 0) temp = new int[size]; System.arraycopy(intArray, 0, temp, 0, size); capacity = size; intArray = temp; > > public void removeElement() if (size > 0) intArray[size - 1] = 0; size--; > > > public class DynamicArray public static void main(String[] args) DynamicArrayTest dynamicArrayTest = new DynamicArrayTest(); dynamicArrayTest.addElementToArray(10); dynamicArrayTest.addElementToArray(20); dynamicArrayTest.addElementToArray(30); dynamicArrayTest.addElementToArray(40); dynamicArrayTest.addElementToArray(50); System.out.println("items of intArray:"); for (int i = 0; i dynamicArrayTest.capacity; i++) System.out.print(dynamicArrayTest.intArray[i] + " "); > System.out.println(); System.out.println("Capacity of the intArray: " + dynamicArrayTest.capacity); System.out.println("Size of the intArray: " + dynamicArrayTest.size); dynamicArrayTest.removeElement(); System.out.println("\nItems after removing the last element"); for (int i = 0; i dynamicArrayTest.capacity; i++) System.out.print(dynamicArrayTest.intArray[i] + " "); > System.out.println("\nCapacity of the intArray: " + dynamicArrayTest.capacity); System.out.println("Size of the intArray: " + dynamicArrayTest.size); dynamicArrayTest.shrinkSize(); System.out.println("\nItems after removing unused space"); for (int i = 0; i dynamicArrayTest.capacity; i++) System.out.print(dynamicArrayTest.intArray[i] + " "); > System.out.println("\nCapacity of the intArray: " + dynamicArrayTest.capacity); System.out.println("Size of the intArray: " + dynamicArrayTest.size); > >
items of intArray: 10 20 30 40 50 0 0 0 Capacity of the intArray: 8 Size of the intArray: 5 Items after removing the last element 10 20 30 40 0 0 0 0 Capacity of the intArray: 8 Size of the intArray: 4 Items after removing unused space 10 20 30 Capacity of the intArray: 3 Size of the intArray: 3
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
Сопутствующая статья - Java Array
Copyright © 2023. All right reserved