新しい Customer オブジェクト (ノードではなく node.data である必要があります) を、顧客オブジェクトの名前のアルファベット順に並べ替えて追加しようとしています。しかし、それは機能していません。リストをソートされていない順序で出力しています(元の順序から変更されていません)。
public void add(Customer newNode, int dummy){
if (head == null){ // The first node
head = tail = this;
head.setData(newNode);
size=1;
return;
}else{
CustomerList last = null;
for(CustomerList node = head;
node != null && node.getData().toString().compareTo(newNode.name) < 0;
node = node.next){
last = node;
}
CustomerList newList = new CustomerList(newNode);
newList.setNext(last.next);
last.next = newList;
}
} // add
txt ファイルからの Customer オブジェクトの入力。もう一度印刷する必要がありますが、アルファベット順 (顧客名) です。
10121,Airgo Fresh ods,OH,870023
10125,Bird Out fittered ,MI,870023
10134,Kit river ,IL,870023
10167,Mouin Gontaods,OR,870021
10178,Theiasu El senter,CA,870022
txt ファイルからデータを読み取り、オブジェクトを作成してリストに追加するコード:
public void byCustomerName()
{
records = null;
System.gc();
CustomerList.setHead(null);
records = new CustomerList();
try
{
String line;
StringTokenizer st;
String id, name, state, salesrep;
BufferedReader infile = new BufferedReader(new FileReader("Customer.txt"));
while ((line = infile.readLine()) != null)
{
st = new StringTokenizer(line, ",");
id = st.nextToken(",");
name = st.nextToken(",");
state = st.nextToken(",");
salesrep = st.nextToken(",");
records.add(new Customer(id, name, state, salesrep), 99);
}
infile.close();
} catch (IOException x) { System.err.println(x); }
} // byCustomerName