【发布时间】:2014-10-19 07:17:03
【问题描述】:
我定义了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;
}
简而言之,我需要改变链表中元素的值,而不是改变元素本身。
【问题讨论】:
标签: java list pointers linked-list listiterator