Подтвердить что ты не робот

Добавить строку в массив строк

Возможный дубликат:
как добавить новые элементы в массив String []?

Я новичок в Java, поэтому мне нужна небольшая помощь

У меня

String [] scripts = new String [] ("test3","test4","test5");

и я хочу добавить новые строки (string1, string2) в этот массив (скрипты) для примеров

String string1= " test1"
String string2 = "test2"

Я хочу добавить новую строку не в init, а в более позднюю фазу

Как я могу это сделать?

4b9b3361

Ответ 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");