1

Javaアプリでデータの複数のリストを操作する必要があるシナリオがあります...各リストには任意の数の要素を含めることができます...また、そのようなリストの数も最初はわかりません...

私のシナリオに最適なアプローチはどれですか? リストのarraylist、またはリストのリストまたはarraylistのリストなど(つまり、arraylist + list / arraylist + arraylist / list + listの組み合わせ)を考えることができます...私が知りたいのは--

(1) 上記 (または独自のソリューション) のうち、データを保存/フェッチするために管理するのが最も簡単なのはどれですか? (2) 上記のどれがメモリの使用量が最も少なくなりますか?

4

3 に答える 3

1

変数を次のように宣言します。

List<List<DataType>> lists = new ArrayList<List<DataType>>();

インターフェイスタイプの変数を介してリストメソッドにアクセスすることにはわずかな時間のペナルティがありますが、これは、適切と思われるタイプを変更する柔軟性によってバランスが取れていると思います。(たとえば、lists不変にすることにした場合は、のメソッドの1つを使用してそれを行うことができますが、java.util.Collectionsそれをであると宣言した場合はできませんArrayList<List<DataType>>。)

(他の人が指摘しているように)はクラスではなくインターフェースであるため、listsを実装するいくつかの具象クラスのインスタンスを保持する必要があることに注意してください。List<DataType>List

于 2012-09-06T20:15:58.360 に答える
0

扱うリストを特定する方法がわかっている場合は、リストのマップを使用してください。

Map<String,List<?>> = new HashMap<String,List<?>>();

このようにして、実際のリストに到達するために外側の要素をループする必要がなくなります。ハッシュマップはイテレータよりも優れたパフォーマンスを発揮します。

于 2012-09-06T20:52:03.713 に答える
0

Listインターフェースです。ArrayListの実装の 1 つですList

作成するときListは、特定の具象型 (例: ) を選択する必要がありますArrayList。リストを使用する場合は、可能であればインターフェイスに対してプログラムすることをお勧めします。これにより、コードと特定の実装との間の密結合が回避され、必要に応じて後でList別の実装に簡単に変更できるようになります。List

于 2012-09-06T20:12:40.887 に答える