자바로 된 객체로 링크 된 목록 (일반 컨테이너)을 만들었습니다. 키로 알파벳순으로 목록을 정렬하려면 insert-method를 다시 작성해야합니다. 이것은 지금까지 내 코드입니다 :자바에서 객체로 연결된 목록을 정렬하는 방법
컨테이너 :
class Sellbeholder<N extends Comparable<N>, V> implements INF1010samling<N,V> {
private Keeper første;
private int ant = 0;
private class Keeper {
Keeper neste;
N n;
V v;
Keeper(N n,V v) {
this.n = n;
this.v = v;
}
}
이 (내가 다시 작성할 필요) 내 삽입 방법 :
public void PutIn(N n, V v) {
Keeper kep = new Keeper(n,v);
kep.neste = første;
første = kep;
ant++;
이것은 사람 객체이며, 내가 ' 컨테이너에 넣는 것 (연결리스트) :
그리고 이것은 사람을 만들어 컨테이너에 넣는 방법입니다.
Sellbeholder <String,Person> b1 = new Sellbeholder <String,Person>();
Person a = new Person("William");
b1.PutIn("William",a);
어떤 도움을 주시면 감사하겠습니다. 개체를 넣을 위치를 확인하려면 CompareTo-metohod 사용해야하지만 연결된 목록의 구조를 설정하는 방법을 잘 모르겠습니다. 나는이 시작했습니다
public void PutIn(N n, V v) {
Keeper kep = new Keeper(n,v);
// you will insert between previous and current
Keeper previous = null;
Keeper current = første;
// loop until you get the right place
while (current != null && ((current.n).compareTo(n) > 0)) {
previous = current;
current = current.neste;
}
// insert your stuff there (if there were no previous, then this is the first one)
if (previous == null) {
første = kep;
} else {
previous.neste = kep;
}
// Set the next Keeper
kep.neste = current;
ant++;
}
이 주문한 목록을 유지합니다 : 당신이 적절한 위치를 얻을 때까지
for(Keeper nn = første; nn!= null; nn = nn.neste) {
if(nn.n.compareTo(kep.n) > 0) {
//Do something here
대신 TreeSet을 사용할 수없는 이유는 무엇입니까? http://docs.oracle.com/javase/6/docs/api/java/util/TreeSet.html – anoopelias
링크 된 목록이 필요하면 ** java.util.LinkedList **를 사용할 수 있으며지도가 필요한 경우 당신이 사용할 수있는 키에 의해 정렬 ** java.util.TreeMap **. 나는 당신이 찾고있는 TreeMap을한다고 생각한다. –
@anoopelias 아마도 그는 직접 구현해야합니다. 숙제를 좋아해. – gaborsch