私はこれをしばらくいじっていましたが、何をしても出力が常に切り捨てられたり、恣意的に「ソート」されたりしているようです。2 つの要素を交換するのに十分な参照を移動していますか? 現在のノードの SSN フィールドが前のものよりも大きい場合、前のものを現在のものにリンクするようにしようとしています。これは私のコードが現時点でどのように見えるかです:
public void loadRecords() throws FileNotFoundException {
Node head = null;
Node prev = null;
Node curr = null;
Scanner fileRead = makeAFile(database);
fileRead.useDelimiter(";|\n");
boolean sorted = false;
while (fileRead.hasNext()) {
head = new Node(fileRead.next(), fileRead.next(), fileRead.next());
head.nextOne = prev;
if (prev != null) {
for (curr = head; curr != null; curr = curr.nextOne) {
if ((curr).compareTo(prev) > 0) {
head.nextOne = prev.nextOne; //oops, there we go. used to be "head.nextOne = curr.nextOne".
prev = head; // not even sure if this is what I want
sorted = true;
} else
break;
}
}
if (sorted != true) {
prev = head;
}
sorted = false;
}
}