1
public void addTrainRecords(TrainData t){

    OpenFile();

    TrainData current = null;
    current = readRecord();

    while(current != null){

        current = readRecord();
    }
    writeRecord(t);



    //closeFile();
}

レコードをファイルに順番に追加するために、レコードと自動ソートレコードデータを追加する必要がありますが、まだソートはしていません。

私のレコードは、注文番号の例 を持つTrainDataのオブジェクトです
列車番号3
を追加してから、列車番号1
を追加します レコードをファイルに追加しながら、1から3にソートしたい
誰もそれを行う方法を知っていますか?, 助けて
ください

4

1 に答える 1

0

すべてのレコードを に保存し、List<TrainData>を使用してリストを並べ替えてCollections.sort()から、リストを繰り返し処理し、各レコードをファイルに書き込みます。

または、現在行っているように各レコードを読み取ります。各反復で、新しいレコードがまだ書き込まれていない場合は、現在のレコードと新しいレコードを比較し、新しいレコードよりも大きい場合は、新しいレコードを書き込み、次に現在のレコードを書き込みます。ループの最後で、新しいレコードがまだ書き込まれていない場合は、それを書き込みます。

TrainData current = null;
boolean newRecordWritten = false;
for (current = readRecord(); current != null; current = readRecord()) {
    if (!newRecordWritten && firstBiggerThanSecond(current, t)) {
        writeRecord(t);
        newRecordWritten = true;
    }
    writeRecord(current);
}

if (!newRecordWritten) {
    writeRecord(t);
}
于 2012-02-26T14:11:38.910 に答える