Как удалить весь список, но оставил только последний индекс - PullRequest
1 голос
/ 18 июня 2019

Я в состоянии, которое требует, чтобы 1 список всегда был заполнен один за другим, и я хочу удалить весь список, но оставил его только с последним индексом

Я пытался с этими фрагментами. Но он удаляет всю строку один за другим

 int totalListPeriodeClick   = listPeriodeClick.size();

    if(listPeriodeClick.size() == 0) {
        listPeriodeClick.add("2019-04-30");
    } else if (listPeriodeClick.size() == 1) {

    } else if (listPeriodeClick.size() > 1){

        for (int i = 0; i < totalListPeriodeClick; i++){
            listPeriodeClick.remove(0);
        }
            setListPeriodeClickString(listPeriodeClick.get(0));
    }

с

for (int i = 0; i < totalListPeriodeClick; i++){
            listPeriodeClick.remove(0);
        }

и я хочу получить последний индекс, который будет иметь 0-index как list.get (0) по этому коду

setListPeriodeClickString(listPeriodeClick.get(0));

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

1 Ответ

3 голосов
/ 18 июня 2019

Почему бы и нет:

if (! listPeriodeClick.isEmpty()) {
  PeriodeClick last = listPeriodeClick.get(listPeriodeClick.size()-1);
  listPeriodeClick.clear();
  listPeriodeClick.add(last);
}

Нет смысла вручную итерировать (потенциально большой) список только для удаления элементов.Запомните последнюю запись, отбросьте все и заново добавьте эту последнюю запись.Если вы хотите сохранить другой вызов метода, используйте

int size = listPeriodeClick.size();
if (size > 1) { ...
...