динамически расширять массив строк - PullRequest
0 голосов
/ 30 августа 2011

Например, вот одна текущая реализация в памяти

Струнные компании [] = {"Алиса Бернед", "Бейонсе Кэти", "Келли Болдт"};

Требуется динамически расширять этот каталог во время выполнения. Записи могут быть целых тысячи. Структура данных должна облегчать основные функции, такие как поиск, добавление, удаление.

Мое решение:

Моя первая мысль - использовать ArrayList, легко получить и добавить.

Вопрос: Есть ли хороший способ подойти к проблеме?

Ответы [ 2 ]

5 голосов
/ 30 августа 2011

Массивы после создания имеют фиксированный размер в Java.После создания массива невозможно динамически добавлять элементы.Если вы хотите это сделать и вам действительно нужно использовать массив, то единственное, что вы можете сделать, - это создать новый массив с требуемым новым размером, скопировать в него элементы старого массива и добавить новые данные.Это, конечно, громоздко.

Если вы не обязаны использовать массив, используйте вместо этого класс коллекции: например, ArrayList или LinkedList.

См .: Учебник: Коллекции

1 голос
/ 30 августа 2011

Если предположить, что когда вы говорите «легко получить и добавить», «добавить» относится к добавлению только к концу коллекции, тогда ArrayList действительно хороший вариант.

Если вы также хотите добавить к фронту, то ArrayDeque лучше.И если вы хотите иметь возможность добавлять в произвольное местоположение, то ни один из них не очень хороший выбор.

...