Я определил связанный список объектов Candidate
. Мне нужно сохранить начальный следующий элемент для каждого элемента (так как я буду менять порядок позже и потребую начальный порядок).Изменить значение элемента в LinkedList в java
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
. Мне также требуется перебрать весь список и изменить предпочтение кандидата в списке. Однако я не знаю, как получить доступ к элементам списка.
В принципе, я знаю эквивалент C++, где указатель на 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;
}
Короче говоря, мне нужно изменить значение элементов в связанном списке, а не изменить сам элемент.
Ох спасибо! Но тогда, если мне нужна копия объекта (чтобы я мог изменить его значение, не нарушая исходный), как я могу получить это –
@code_enthu Если вам нужна копия, вам нужно будет создать копию самостоятельно, путем реализации и вызова конструктора копирования или метода clone() в классе Candidate. – Eran