Я пытаюсь заменить значение в моем строчном массиве, но мой аррайалист просто добавляет вместо замены.ArrayList заполняется вместо замены индекса java
temp - это строка, которая берет значение из буферизатора. player_status_line - мой строковый архаист.
Я не вижу, что я делаю неправильно. Я проверяю размер массива, и если он содержит имя пользователя (getName [2]), я устанавливаю новое значение в одно и то же место.
Это то, что я сделал, но почему-то все еще сохраняет все. Пробовал пройти код, но не вижу проблемы.
Код редактируется *
while ((checkIfPlayer = bReader.readLine()) != null) {
// Arraylist
String temp = checkIfPlayer.trim();
System.out.println(temp);
if (temp.contains("ZOMBIE") || temp.contains("HUMAN")) {
String[] getName = temp.split(" ");
String checkName = getName[2];
if (!player_status_list.contains(checkName)) {
player_status_list.add(temp);
} else if (player_status_list.contains(checkName)) {
for (int i = 0; i < player_status_list.size(); i++) {
player_status_list.set(i, temp);
}
}
DrawTheMap();
}
}
Если бы я тебя, я бы собрать небольшой тест, который демонстрирует поведение. Просто основной метод, который делает аналогичную вещь, используя жестко заданные значения и предопределенный список. Таким образом, мы можем запускать код для себя и точно видеть, о чем вы говорите. –
Что в действительности используется 'temp' в строке? – gtgaxiola
Отредактировал свой ответ в ответ на изменение кода. – gtgaxiola