Добавить строку в массив строк
Возможный дубликат:
как добавить новые элементы в массив String []?
Я новичок в Java, поэтому мне нужна небольшая помощь
У меня
String [] scripts = new String [] ("test3","test4","test5");
и я хочу добавить новые строки (string1, string2) в этот массив (скрипты) для примеров
String string1= " test1"
String string2 = "test2"
Я хочу добавить новую строку не в init, а в более позднюю фазу
Как я могу это сделать?
Ответы
Ответ 1
Вы не можете изменять размер массива в java.
Как только объявлен размер массива, он остается фиксированным.
Вместо этого вы можете использовать ArrayList
, который имеет динамический размер, то есть вам не нужно беспокоиться о его размере. Если список массивов недостаточно велик для размещения новых значений, он будет автоматически изменен.
ArrayList<String> ar = new ArrayList<String>();
String s1 ="Test1";
String s2 ="Test2";
String s3 ="Test3";
ar.add(s1);
ar.add(s2);
ar.add(s3);
String s4 ="Test4";
ar.add(s4);
Ответ 2
Сначала этот код здесь,
string [] scripts = new String [] ("test3","test4","test5");
должен быть
String[] scripts = new String [] {"test3","test4","test5"};
Прочтите этот учебник по Arrays
Во-вторых,
Массивы фиксированного размера, поэтому вы не можете добавлять новые строки в массив выше. Вы можете переопределить существующие значения
scripts[0] = string1;
(или)
Создайте массив с размером, затем продолжайте добавлять элементы до полного заполнения.
Если вы хотите изменять размеры массивов, рассмотрите возможность использования ArrayList.
Ответ 3
вам нужно записать некоторый метод для создания временного массива, а затем скопировать его, как
public String[] increaseArray(String[] theArray, int increaseBy)
{
int i = theArray.length;
int n = ++i;
String[] newArray = new String[n];
for(int cnt=0;cnt<theArray.length;cnt++)
{
newArray[cnt] = theArray[cnt];
}
return newArray;
}
или ArrayList будет полезен для решения вашей проблемы.
Ответ 4
Как и многие из ответов, предлагающих лучшее решение, нужно использовать ArrayList. Размер ArrayList не является фиксированным и легко управляемым.
Реализуется реализация resizable-array интерфейса List. Выполняет все необязательные операции с списками и разрешает все элементы, включая null. В дополнение к реализации интерфейса List этот класс предоставляет методы для управления размером массива, который используется внутри для хранения списка.
Каждый экземпляр ArrayList имеет емкость. Емкость - это размер массива, используемого для хранения элементов в списке. Он всегда не меньше размера списка. Поскольку элементы добавляются в ArrayList, его емкость растет автоматически.
Обратите внимание, что эта реализация не синхронизирована.
ArrayList<String> scripts = new ArrayList<String>();
scripts.add("test1");
scripts.add("test2");
scripts.add("test3");
Ответ 5
Поскольку массивы Java содержат фиксированное количество значений, в этом случае вам необходимо создать новый массив длиной 5. Лучшим решением было бы использовать массив ArrayList и просто добавить в массив.
Пример:
ArrayList<String> scripts = new ArrayList<String>();
scripts.add("test3");
scripts.add("test4");
scripts.add("test5");
// Then later you can add more Strings to the ArrayList
scripts.add("test1");
scripts.add("test2");