Dinamik Dizi Nedir?

Dinamik bir dizi, bilgisayar programlamasında kullanılan ve birden fazla hesaplama nesnesini tek bir grup olarak tutan ve değişen sayıda nesneyi barındıracak şekilde yeniden boyutlandırılabilen bir veri yapısıdır. Grup tek bir bitişik hafıza bloğunda tutulur, bu nedenle elementlere erişim verimli ve hızlıdır. Dinamik dizilere, kullanıldığı bilgisayar diline bağlı olarak vektörler veya listeler de denir. Bu isimlere rağmen, belirli bir liste veya vektör dinamik bir dizi olmayabilir, çünkü listeler ve vektörler dizilerden ve birbirlerinden farklı şekilde uygulanabilir.

C ++, standart şablon kütüphanesi adı verilen bir sınıf sınıfında bulunan, vektör adı verilen tek bir dinamik dizi sınıfı içerir. Bu sınıfı destekleyen diziye yineleyiciler veya dizinler tarafından erişilebilir. İsteğe göre yeniden boyutlandırılması büyük bir avantajdır, ancak programcıları göründüğü kadar sağlam olmadığı için programcıları yanlış bir güvenlik duygusuna çekebilir. Bir vektörü destekleyen dinamik dizi erişim isteklerinin geçerli olmasını sağlayamaz. Statik diziler gibi, bir program kendileri için tahsis edilmemiş olan belleğe erişmeye kalkarsa, dinamik dizilerin sınırları denetleme ve bellek bozulması sorunları olabilir.

Java, üç farklı dinamik dizi sınıfı içerir: Vector, ArrayList ve CopyOnWriteArrayList. Dizideki öğelere yalnızca dizinler tarafından erişilir ve dizinin dışındaki dizinlere erişmeye çalışmak genellikle bellek bozulma sorunlarına neden olmaz. Java Vector sınıfı, kabaca C ++ vector sınıfına eşdeğerdir ve birden fazla iş parçacığı tarafından erişimi sağlamak için eşitlenmez. ArrayList ve CopyOnWriteArrayList, aksine, her ikisi de iş parçacığı için güvenlidir. Üçü arasında, CopyOnWriteArrayList en emek yoğun sınıftır, çünkü diziye her yeni değer yazıldığında dinamik diziyi tamamen yeniden oluşturur.

Dinamik diziler, söz konusu bilgisayar diline bakılmaksızın esasen aynı şekilde uygulanır, ancak belirli bir dile bağlı olarak, üzerine kurulu başka yetenekler de olabilir. Statik diziler gibi, dinamik diziler de hepsi aynı nesne türü olduğu sürece içlerinde depolanabilecek nesne türünü kısıtlamaz. Bir programcının asla doğrudan dinamik bir diziye erişmesi gerekmez; her zaman kolay kullanım için diziyi saran bir sınıf aracılığıyla yapılabilir. Bu dizilerin doğru kullanımı, programcıya kod içinde veri organizasyonu ile ve aynı zamanda kolay bakım için kendisini ödünç veren anlaşılabilir bir kod oluşturma konusunda yardımcı olabilir.