Как изменить значение списка

207
09 мая 2017, 03:28

Есть класс

public class MarkerData {
    double latitue,longitude;
    String title,status;
    LatLng lng;
    int number;
 public MarkerData(double longitude, double latitue, String title, LatLng lng, String status, int number) {
        this.longitude = longitude;
        this.latitue = latitue;
        this.title = title;
        this.lng = lng;
        this.status = status;
        this.number = number;
    }
    public LatLng getLng() {
        return lng;
    }

    public double getLatitue() {
        return latitue;
    }
    public void setLatitue(double latitue) {
        this.latitue = latitue;
    }
    public double getLongitude() {
        return longitude;
    }
    public void setLongitude(double longitude) {
        this.longitude = longitude;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public int getNumber() {
        return number;
    }
    public void setNumber(int number) {
        this.number = number;
    }
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }

Бросил его в список

  ArrayList<MarkerData> latlngs = new ArrayList<>();
 latlngs.add(new MarkerData(0,0,"my first",lng(0,0),null,null));

Хочу изменить значение latlngs Как это сделать .Хочу именно изменить значение 0 эелемента сделать его my second title

Answer 1

Изменить значения (свойства) элементов списка довольно просто.

Допустим ваш список объявлен как:

ArrayList<MarkerData> latlngs = new ArrayList<>();

Тогда, если надо поменять свойства во всех элементах массива, делаем так:

// во всех объектах, сохранённых в списке поменяет title на "my second title"
for (MarkerData markerData:latlngs) {
         markerData.setTitle("my second title");
}

Если надо поменять не во всех, а, например, только у элементов с чётными индексами, то можно сделать так:

for (int i=0; i<latlngs.size(); i++) {
    if (i % 2 == 0) {
      // если остаток от деления на 2 == 0
      latlngs.get(i).setTitle("my second title");
    }
}

Это работает потому, что вызов latlngs.get(i) отдаёт вам элемент с типом MarkerData, у которого вы можете вызывать методы этого класса.

У вас ошибка, вероятно возникает из-за путаницы со скобками.

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

То есть вместо:

ArrayList<MarkerData> latlngs = new ArrayList<>();

лучше писать:

List<MarkerData> latlngs = new ArrayList<>();

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

READ ALSO
Помещение элементов массива в список html.

Помещение элементов массива в список html.

В список(в тэг <a>) должны по очереди выводится элементы массива но если что то и выводиться то только последний элементПробовал сделать...

260
Расположение Div-ов

Расположение Div-ов

Помогите сделать так чтобы несмотря на количество текста внутри все 4 div-а были ровными

170
Вывести дни месяц и год в таблице

Вывести дни месяц и год в таблице

Как сделать чтобы в таблице отображались:

372
Работа сайта, через pythonanywhere

Работа сайта, через pythonanywhere

Новичок в веб разработке

259