Я хочу добавить строку в массив строк - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть класс, и в этом классе у меня есть приватная переменная.

private String[] stringArray = new String[100]

, и у меня есть метод в этом классе, подобный этому

public void addString (String addedString) {}

Поэтому я хочу добавитьстрока в эту строку Array.Я не хочу использовать список, а просто добавить его в массив строк с заранее определенным количеством «пустых» элементов.

Я пытался

public void addString (String addedString) {
stringArray += addedString;
}

Но я получаю ошибкуошибка: несовместимые типы: строка не может быть преобразована в строку []

Ответы [ 4 ]

0 голосов
/ 19 ноября 2018
public void addString (String addedString)
{
    String[] old = stringArray;
    stringArray = new String[old.length + 1];
    for(int i = 0; i < old.length; i++)
        stringArray[i] = old[i];
    stringArray[stringArray.length] = addedString;
}

Это в основном самый оптимизированный подход.Но вместо этого вы должны использовать ArrayList.

0 голосов
/ 19 ноября 2018

Вы не можете добавить еще один элемент в массив, вы знаете, это массив, он имеет фиксированный размер.Там уже есть 100 строк внутри.Если вам действительно нужно использовать массив вместо списка, вы должны запомнить последний элемент со значимыми данными в массиве и заменить следующий:

private string[] stringArray = new String[100];
private int meaningful = 0;
public void addString (String addedString) {
    stringArray[meaningful+1] = addedString; // optionally check, whether the array really has enough space like meaningful < 100
    meaningful++;
}
0 голосов
/ 19 ноября 2018
class Data {
    private final String[] arr = new String[100];
    private int pos = -1;

    public void add(String str) {
        if(pos < arr.length - 1)
            arr[++pos] = str;
    }

    public String remove() {
        return pos >= 0 ? arr[--pos] : null;
    }
}
0 голосов
/ 19 ноября 2018

Вы не можете «добавить» массив: это структура данных фиксированной длины.

Вы можете создать новый массив длиннее и установить последний элемент:

stringArray = Arrays.copyOf(stringArray, stringArray.length + 1);
stringArray[stringArray.length - 1] = addedString;

Но, честно говоря, вам лучше использовать List (в частности, ArrayList) вместо этого, который обрабатывает увеличение длины массива для вас (и делает это более эффективно, если вы добавляете много элементов).

...