Java: изменить строку [] [] динамически - PullRequest
0 голосов
/ 02 октября 2010

У меня есть этот код:

newArray = new String[][]{{"Me","123"},{"You","321"},{"He","221"}};

И я хочу сделать это динамически.Добавляйте больше элементов и тому подобное.

Как мне это сделать?

PS: без использования Vector, просто с помощью String[][];

Ответы [ 4 ]

8 голосов
/ 02 октября 2010

Вы не можете изменить размер массива.Вы должны создать новый массив и скопировать весь контент из старого массива в новый массив.

Вот почему гораздо проще использовать классы java collection, такие как ArrayList, HashSet, ...

0 голосов
/ 02 октября 2010

Вы можете избежать использования массивов , если есть возможность рассчитать размер массивов перед их использованием .В вашем примере кажется, что нам нужно знать только размер первого массива.Таким образом, вы можете установить какое-то ограничение на количество сохраняемых записей, или вы можете запросить пользователя, чтобы узнать, сколько записей ему нужно сохранить или что-то подобное.

Но опять же, проще использовать Коллекции.

0 голосов
/ 02 октября 2010

В Java нет возможности изменять размеры массивов, как в некоторых других языках.

Но
Вы бы не увидели разницы между массивом String и ArrayList<String> ( javadoc ), если только вам это не требуется (как в домашней работе)

Есть способы, с помощью которых вы можете объявить огромный массив, чтобы у вас не было свободного места , но я настоятельно рекомендую ArrayList, если вам нужны динамические изменения размера.И ArrayList предоставляет в качестве бонуса некоторые возможности, которые (напрямую) невозможны с массивом.

0 голосов
/ 02 октября 2010

Вы не можете изменить размер массивов. Я думаю, у вас есть несколько вариантов:

  1. используйте List<List<String>> для хранения списка списков строк
  2. используйте Map<String,String>, если вы храните пару ключ / значение

Vector имеет тенденцию не использоваться в эти дни, кстати. Vector синхронизируется при каждом вызове метода, и, следовательно, наблюдается снижение производительности (в настоящее время незначительное в современных виртуальных машинах)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...