2008-11-26 11 views

cevap

39

Evet, öğeler sonuna kadar eklenir (aksi belirtilmedikçe, örn. Insert numaralı bir aramayla). Başka bir deyişle, bunu yaparsanız: Eğer tabii ki, herhangi bir önceki öğeleri kaldırmak veya ileride bunun yeni unsurlar eklerseniz

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 

pozisyon değiştirecektir.

Bu arada, List<T> yerine ArrayList'u kullanmanın iyi bir nedeni var mı? Sigara jenerik koleksiyonları yüzden 2003 ...

(sipariş arada, hem List<T> stabildir.) olan

+2

"Jenerik olmayan koleksiyonlar çok öylesine 2003 ..." - LOL, iyi bir Jon, bu hafta benim teklifim olarak gidiyor :) –

6

Evet, kodunuzun bir kısmı siparişi değiştirmedikçe, örn. hızlı geçiş yapılabilir.

2

Evet. [saçma cevap uzunluğu sınırı]

0

ArrayList öğesine bir öğe eklediğinizde, öğe her zaman bu dizinde kalır. Tabii değiştirmezsen tabii.

(çerçeve belleği yeniden düzenlemek olabilir ancak endeks hep aynı kalacak)

4

Evet öyle. Bir dizi olarak depolandığından beri.

Diğer özellikler

  • Garantili sipariş
  • Rastgele erişim

    bulunmaktadır. O (1)
  • dizinine göre istediğiniz herhangi bir öğeye erişebilirsiniz. Yavaş ekleme ve başlangıç ​​ve ortadaki silme.
  • Yüklü değil. (Sıralama, quicksort veya benzerlerini kullanarak O (n log n) almalıdır)
İlgili konular