Candidate
개체의 연결 목록을 정의했습니다. 모든 요소에 대해 초기 다음 요소를 저장해야합니다 (나중에 순서를 변경하고 초기 순서가 필요하기 때문에). 내가 초기화 할 필요가 후보 목록 (candidateList
)을 만들 필요가 별도의 클래스에서 자바에서 LinkedList의 요소 값 변경
public class Candidate {
//data members
private String prefrence;
private Candidate next;
public void setNext(Candidate c){ next=c; }
//rest of the class body
}
,
while(input) {
Candidate c = new Candidate(field[0], field[1], field[2], ...);
candidateList.add(c);
}
는 지금, 나는 c.next
에서리스트의 다음의 요소를 저장해야합니다. 또한 전체 목록을 반복하고 목록에서 후보의 기본 설정을 변경해야합니다. 그러나 목록의 요소에 액세스하는 방법을 모르겠습니다.
기본적으로 나는 Candidate
(ptr)에 대한 포인터 인 ptr->datamember=abc;
이 작업을 수행하는 C++ 동등한 기능을 알고 있습니다. 그러나 나는 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() 메서드를 구현하고 호출합니다. – Eran