4

データのテーブルがあります(列の数は行ごとに長さが異なる場合があります)。また、データの新しい行を削除または追加できる必要があります。

このデータを保存するための最良の方法は何ですか?

私の最初の推測はですArrayList

4

2 に答える 2

6

2つのアプローチ:

  1. すべてを文字列に変換しArrayList<List<String>>、各エントリが。で表される行であるを使用しArrayList<String>ます。

    • 利点:「行」を表すために独自のクラスを作成する必要はありません。
    • 短所:データを変換する必要があり、データを逆変換せずに数学演算を実行することはできません。すべての行が同じ長さであることを確認する必要があります。

  2. Rowdystroyが言ったように、テーブルにaを表すクラスを作成し、ArrayList<Row>

    • 利点:エントリは実際の型を保持し、行は可変長ではなく(必要な場合を除いて)、列にアクセスするための意味のある方法を使用できます(たとえばrow.getDate()、の代わりにrow.get(3))。
    • 短所:追加のクラスを作成するための作業が増える可能性があります。
于 2012-05-02T15:36:48.753 に答える
1

リストがスタックとして機能することを期待する場合は特に、LinkedListを選択します。

ArrayListの主な欠点は、容量に達したときにこれがより大きなテーブルを再作成することです=>テーブルの割り当てとコピーのパフォーマンスが低下します。

LinkedListの場合、すべてがポインターによって機能するため、容量の概念はありません。

私によると、LinkedListではなくArrayListを好む主な(そしておそらくほとんどの場合はユニークな...)理由は、主に特定のインデックスにアクセスしたい(その一部を読んだ)場合です。ArrayListではO(1)ですが、LinkedListではO(n)です。

詳細については、この投稿を読むことができます:

ArrayListよりもLinkedListを使用する場合

于 2012-05-02T16:23:04.280 に答える