ArrayList Sınıfı
06.05.2011 - 10:44 tarihinde aykut gönderdi
Aşağıda vermekte olduğum eğitimlerde ArrayList sınıfını anlatırken kullandığım benim tarafımdan yazılmış bir alternatif ArrayList sınıfı örneklenmiştir.
Ekleyen : Aykut TAŞDELEN
Kaynak kod:
public class Liste { private const int default_capacity = 4; private Object[] dizi; private int p = 0; public Liste() { dizi = new Object[default_capacity]; } public Liste(int capacity) { dizi = new Object[capacity]; } public void Ekle(Object elem) { try { dizi[p] = elem; } catch (IndexOutOfRangeException e) { Array.Resize(ref dizi, (dizi.Length * 2)); dizi[p] = elem; } finally { ++p; } } public int IndexVer(Object elem) { int i = 0; for (i = 0; i <= dizi.Length - 1; i++) { if (dizi[i] == elem) { break; } } return i; } public bool Iceriyormu(Object elem) { bool flag = false; for (int i = 0; i <= dizi.Length - 1; ++i) { if (dizi[i] == elem) { flag = true; break; } } return flag; } public int ElemanSayisi { get { int t = 0; for (int i = 0; i <= dizi.Length - 1; ++i) { if (dizi[i] != null) ++t; } return t; } } public int Kapasite { get { return dizi.Length; } } public int SonElemanIndeksi { get { return dizi.Length-1; } } public void Sil(int index) { Object[] tmp = new Object[dizi.Length-1]; int s = 0; if (index < (dizi.Length - 1)) { for (int i = 0; i <= dizi.Length - 1; ++i) { if (i != index) { tmp[s] = dizi[i]; ++s; } } } dizi = new Object[tmp.Length]; for (int i = 0; i <= tmp.Length - 1; ++i) { dizi[i] = tmp[i]; } } public void Sil(object elem) { Sil( IndexVer(elem)); } public void Yazdir() { for (int i = 0; i <= dizi.Length - 1; ++i) { if (dizi[i] != null) Console.WriteLine(dizi[i]); } } public void Kirp() { int kirpilmisUzunluk = 0; for (int i = 0; i <= dizi.Length - 1; ++i) { if (dizi[i] != null) ++kirpilmisUzunluk; } Object[] tmp = new Object[kirpilmisUzunluk]; int t = 0; for (int i = 0; i <= dizi.Length - 1; ++i) { if (dizi[i] != null) { tmp[t++] = dizi[i]; } } dizi = new Object[tmp.Length]; for (int i = 0; i <= tmp.Length - 1; ++i) { dizi[i] = tmp[i]; } } }
