Я определил связанный список из Candidate
объектов. Мне нужно сохранить начальный следующий элемент для каждого элемента (поскольку позже я буду менять порядок и требовать начальный порядок).
public class Candidate {
//data members
private String prefrence;
private Candidate next;
public void setNext(Candidate c){ next=c; }
//rest of the class body
}
В отдельном классе мне нужно создать список кандидатов (candidateList
), где я должен его инициализировать,
while(input) {
Candidate c = new Candidate(field[0], field[1], field[2], ...);
candidateList.add(c);
}
Теперь мне нужно сохранить следующий элемент списка в c.next
. Мне также требуется перебрать весь список и изменить предпочтение кандидата в списке. Однако я не знаю, как получить доступ к элементам списка.
По сути, я знаю эквивалент С++, где указатель на Candidate
(ptr), ptr->datamember=abc;
будет выполнять эту работу. Но я новичок в Java и не могу понять механизм указателя здесь. Я имею в виду что-то вроде этого:
ListIterator<Candidate> itr = candidateList.listIterator();
while(itr.hasNext()) {
Candidate c = itr.next(); //I am supposing this creates a copy while i need a reference
func(c.pref);
c.pref = abc;
c.next = def;
}
Короче говоря, мне нужно изменить значение элементов в связанном списке, а не сам элемент.