Die letzten 10 Beiträge |
eulerscheZahl |
Zitat: |
currentEntry.getnext() Java ist case sensitive. ??
was bedeutet das ? |
es heißt getNext, mit großem N.
Auch den Datentyp "Element" hast du nicht komplett ausgebessert.
Auch wenn ich mich wiederhole: teste das erst mit dem Compiler, ich will hier nicht immer auch solche Selbstverständlichkeiten hinweisen müssen.
Wenn man die Fehler behebt und mit oben von mit gegebenem Beispielcode testen will, erhält man eine NullPointerException.
Du nimmst einfach an, dass der es immer einen nächsten Eintrag gibt.
currentEntry.getNext().getElement() klappt nicht, wenn currentEntry.getNext() null liefert.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
|
public void add(E element) {
if (this.head == null || element.compareTo(this.head.getElement()) < 0) {
Entry<E> newHead = new Entry<E>(element, this.head);
this.head = newHead;
} else {
Entry<E> current = this.head;
while (current.getNext() != null
&& current.getNext().getElement().compareTo(element) < 0) {
current = current.getNext();
}
Entry<E> x = new Entry<E>(element, current.getNext());
current.setNext(x);
}
this.size++;
} |
|
Zur c)
wenn max >= dem letzten Eintrag in der sortierten Liste ist, hast du wieder eine NullPointerException verursacht. |
neuling96 |
machen wir schrittweise die c)
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
|
public void slice(E min, E max) {
if(this.head == null) {
return;
}
Entry<E> currentEntry = this.head;
this.head = null;
this.size = 0;
while( currentEntry.getElement().compareTo(min) < 0) {
currentEntry = currentEntry.getNext();
}
if(currentEntry.getElement().compareTo(max) <= 0) {
this.head = currentEntry;
this.size++;
}
while( currentEntry.getNext().getElement().compareTo(max) <= 0) {
currentEntry = currentEntry.getNext();
this.size++;
}
currentEntry.setNext(null);
}
|
|
|
neuling96 |
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
|
public void add(E element) {
Entry<E> currentEntry = this.head;
if(currentEntry == null) {
this.head = new Entry<E>(element, null);
this.size++;
return;
}
while (currentEntry.getNext().getElement().compareTo(element) < 0){
currentEntry=currentEntry.getNext();
}
Entry<E> enter=new Element<E>(element, currentEntry.getnext()){
currentEntry.setnext(enter);
this.size++;
}
|
|
currentEntry.getnext() Java ist case sensitive. ??
was bedeutet das ?
ich habe eine frage hier zu
Entry<E> currentEntry = this.head;
this.head = null;
currentEntry zeigt auf this.head( hat eine Referenz die auf das Objekt zeigt)
und
wenn ich this.head=null; setzte
hat es doch auch Auswirkung auf currentEntry ??
heißt das jetzt currentEntry zeigt auch auf null?? |
eulerscheZahl |
Element<E> enter - und was ist Element jetzt aus einmal für ein Datentyp?
while (currentEntry.getNext().getElement().compareTo(element) < 0)) warum gehen hier mehr Klammern zu als auf?
currentEntry.getnext() Java ist case sensitive. |
neuling96 |
public void add(E element) {
Entry<E> currentEntry = this.head;
if(currentEntry == null) {
this.head = new Entry<E>(element, null);
this.size++;
return;
}
while (currentEntry.getNext().getElement().compareTo(element) < 0)){
currentEntry=currentEntry.getNext();
}
Element<E> enter=new Element<E>(element, currentEntry.getnext()){
currentEntry.setnext(enter);
this.size++;
}
[/code] |
neuling96 |
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
|
public void add(E element) {
Entry<E> currentEntry = this.head;
if(currentEntry == null) {
this.head = new Entry<E>(element, null);
this.size++;
return;
}
while (currentEntry.getNext().getElement().compareTo(element) < 0)){
x=x.getNext();
}
Element<E> enter=new Element<E>(element, x.getnext()){
x.setnext(enter);
this.size++;
}
|
|
|
neuling96 |
Wir haben es heute das Thema behandelt, aber viel verstanden habe ich nicht
ich versuch mal die
b)
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
|
public void add(E element){
Entry<T> x= this.head;
while (x.compareto(element)<0){
x=x.getNext();
}
element.setnext(x);
x.setElement(o);
this.size++;
}
|
|
|
eulerscheZahl |
"Wobei dir Eigenschaft der Sortierung erhalten bleiben soll"
Sagt dir der Begriff linked List bzw. verkettete Liste etwas? Das hast du hier nämlich vorliegen. Und in dieser Liste sind die Einträge sortiert.
code: |
1:
2:
3:
4:
5:
6:
7:
|
SortierteListe<Integer> list = new SortierteListe<Integer>();
list.add(3);
list.add(5);
list.add(4);
list.add(3);
list.add(2);
System.out.println(list.printList()); //die Methode habe ich schnell selbst geschrieben, also bitte kein "das wird mir rot unterringelt" |
|
liefert 2 3 3 4 5 |
neuling96 |
// du sollst es sortiert einfügen, nicht an die Spitze setzen
ich dachte, wenn ich ein element in einer liste einfüge, dann immer an der spitze?
an welcher sollte ich den einfügen? |
neuling96 |
oh je, ich dachte wenn ich den code kopiere wird es passen
ich hoffe das passt besser!
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
|
public int indexof(E element) {
int i = 0;
Entry<E> x = this.head;
while (i < this.size) {
if (x.getElement().equals(element)) {
return i;
} else {
x = x.getNext();
i++;
}
}
return -1;
}
|
|
|
Es sind weitere Beiträge zu diesem Thema vorhanden. Klicken Sie hier, um sich alle Beiträge anzusehen. |