19

C#.NETでArrayListを使用している場合、アイテムを追加する順序と同じ順序が維持されることが保証されていますか?

4

5 に答える 5

40

はい、要素は常に最後に追加されます(特にInsertの呼び出しなどで指定しない限り)。言い換えれば、あなたがそうするなら:

int size = list.Count;
int index = list.Add(element);
Assert.AreEqual(size, index); // Element is always added at the end
Assert.AreEqual(element, list[index]); // Returned index is position in list

もちろん、以前の要素を削除したり、その前に新しい要素を挿入したりすると、位置が変わります。

ちなみに使用する理由はありますArrayListList<T>?非ジェネリックコレクションは2003年です...

(ちなみに、注文も安定しList<T>ています。)

于 2008-11-26T15:29:47.647 に答える
6

はい、そうです。ただし、コードの一部がスワッピングなどによって順序を変更しない限り、そうです。

于 2008-11-26T15:29:40.550 に答える
4

はい、そうです。配列として保存されているので。

その他のプロパティは

  • 保証付き注文
  • ランダムアクセス。O(1)のインデックスで任意の要素にアクセスできます
  • 最初と途中でゆっくりと挿入と削除を行います。
  • 未分類。(ソートは、クイックソートなどを使用してO(n log n)を取る必要があります)
于 2008-11-26T15:32:16.363 に答える
2

はい。[愚かな答えの長さの制限]

于 2008-11-26T15:29:54.387 に答える
0

アイテムをArrayListに追加すると、アイテムは常にそのインデックスに留まります。もちろん変更しない限り。

(フレームワークはメモリを再配置する可能性がありますが、インデックスは常に同じままです)

于 2008-11-26T15:30:47.507 に答える