Array ve ArrayList arasındaki fark

Array ve ArrayList nedir?

Hem Array hem de ArrayList, Java programlarında sıklıkla kullanılan dizin tabanlı veri yapılarıdır. Kavramsal olarak konuşursak, ArrayList dahili olarak dizilerle desteklenir, ancak ikisi arasındaki farkın anlaşılması büyük bir Java geliştiricisi olmanın anahtarıdır. Başlamak için oldukça basit bir adım, özellikle kodlamaya yeni başlayanlar. Her ikisi de ilkel veya nesne olabilen Java'da öğeleri depolamak için kullanılırken, işlevsellik ve performans açısından farklılıklarından adil pay alırlar. İkisi arasındaki en büyük fark Array'ın statik olması, ArrayList'in ise doğasında dinamik olmasıdır. Bu makale, ikisini çeşitli yönlerde karşılaştırır, böylece birini diğerinden seçebilirsiniz.

Array ve Arraylist arasındaki fark

  1. Resizable

İki veri yapısı arasındaki önemli ve göze çarpan farklardan biri, Array'ın doğada statik olmasıdır, yani sabit uzunluklu bir veri türüdür, ArrayList ise doğada dinamiktir, yani değişken uzunluklu bir veri yapısıdır. Teknik terimlerle, Array nesnesi oluşturulduktan sonra Array'ın uzunluğu değiştirilemez veya değiştirilemez. Aynı veri türündeki öğelerin sıralı olarak toplanmasını içerir. Java'daki diziler, C / C ++ 'da çalıştıklarından farklı çalışır. ArrayList ise kendini yeniden boyutlandırabilir ve diziler gerektiği gibi büyüyebilir. Dinamik bir veri yapısı olduğundan, öğeler listeye eklenebilir ve listeden çıkarılabilir.

  1. Jenerik

Java'da Genel arabirim sınıfları Dizileri oluşturamazsınız, bu nedenle diziler ve jenerikler el ele gitmezler ve jenerikler değişmezken dizilerin kovaryant olmasının temel bir nedeni için Genel Dizi oluşturmayı imkansız hale getirir. Dizi sabit uzunluklu bir veri yapısı olsa da, aynı sınıftaki nesneleri veya belirli veri türünün ilkellerini içerir. Bu nedenle, Array nesnesi oluşturulurken belirtilenin dışında farklı bir veri türü depolamaya çalışırsanız, yalnızca “ArrayStoreException” atar. ArrayList, tip güvenliğini sağlamak için Generics'i destekliyor.

  1. Primitives

ArrayList'te int, double, long ve char gibi ilkel veri türlerine izin verilmez. Bunun yerine nesneleri tutar ve temel öğeler Java'da nesne olarak kabul edilmez. Diğer yandan, diziler, Java'daki nesneleri ve ilkelleri tutabilir, çünkü nesneleri saklamak için Java'daki en verimli veri yapılarından biridir. Aynı veya farklı türde olabilecek nesneleri tutmak için tasarlanmış birleştirilmiş veri türüdür..

  1. uzunluk

Dizinin uzunluğunu elde etmek için, kodun dizi özniteliğine erişmesi gerekir, çünkü Dizide işlemleri gerçekleştirmek için uzunluğu bilmelidir. ArrayList, ArrayList'in boyutunu belirlemek için size () yöntemini kullanırken, ArrayList'in uzunluğunu belirlemekten oldukça farklıdır. Size () yöntemi özniteliği, bir ArrayList'teki öğelerin sayısını belirler; bu da ArrayList'in kapasitesidir.

Örneğin:

public class ArrayLengthTest

public static void main (Dize [] args)

ArrayList arrList = yeni ArrayList ();

String [] items = “Bir”, “İki”, “Üç”;

for (String str: items)

arrList.add (str);

int size = items.size ();

System.out.println (boyut);

  1. uygulama

Array, Java'da dinamik olarak oluşturulan yerel bir programlama bileşenidir ve öğeleri tutmak için atama işlecini kullanırken, ArrayList öğeleri eklemek için add () özniteliğini kullanır. ArrayList, Java'daki koleksiyon çerçevesinden, öğelere erişmek ve öğeleri değiştirmek için bir dizi belirtilen yöntemi kullanan bir sınıftır. ArrayList öğesinin boyutu dinamik olarak artırılabilir veya azaltılabilir. Bir dizideki öğeler bitişik bellek konumunda depolanır ve boyutu,.

  1. Verim

Her iki veri yapısı da ArrayList Arrays tarafından desteklenirken benzer bir performans sağlarken, birinin CPU zamanı ve bellek kullanımı açısından diğeri üzerinde küçük bir kenarı vardır. Diyelim ki, dizinin boyutunu biliyorsanız, ArrayList ile gidebilirsiniz. Ancak, bir Array üzerinde yineleme yapmak, ArrayList üzerinde yinelemekten biraz daha hızlıdır. Program çok sayıda temel öğe içeriyorsa, bir dizi hem zaman hem de bellek açısından ArrayList'ten önemli ölçüde daha iyi performans gösterir. Diziler, toplama uygulamalarında kullanılabilen düşük düzeyli bir programlama dilidir. Ancak, performans gerçekleştirdiğiniz işleme bağlı olarak değişebilir.

Dizi Vs. Arraylist

Dizi ArrayList
Dizi, dizi nesnesi oluşturulduktan sonra uzunluğu değiştirilemeyen sabit uzunluklu bir veri yapısıdır. ArrayList doğada dinamiktir, bu da gerektiğinde büyümesi için yeniden boyutlandırılabileceği anlamına gelir.
Bir dizinin boyutu program boyunca sabit kalır. ArrayList'in boyutu yüke ve kapasiteye bağlı olarak dinamik olarak büyüyebilir.
Öğeleri depolamak için atama işleci kullanır. Öğeleri eklemek için add () özelliğini kullanır.
Aynı veya farklı veri türündeki nesnelerin yanı sıra ilkel öğeler içerebilir. ArrayList'te temel öğelere izin verilmez. Yalnızca nesne türlerini içerebilir.
Diziler ve Jenerikler el ele gitmez. ArrayList'te jeneriklere izin verilir.
Diziler çok boyutlu olabilir. ArrayList tek boyutludur.
Öğelerin bitişik bellek konumlarında depolandığı yerel bir programlama bileşenidir. Nesnelerin hiçbir zaman bitişik yerlerde saklanmadığı Java'nın koleksiyon çerçevesinden bir sınıftır.
Uzunluk değişkeni, Dizinin uzunluğunu belirlemek için kullanılır. ArrayList öğesinin boyutunu belirlemek için size () yöntemi kullanılır.
Belirtilen öğeleri veya nesneleri depolamak için ArrayList'ten daha az bellek alır. Nesneleri depolamak için Diziden daha fazla bellek alır.
Dizi üzerinde yineleme yapmak, ArrayList üzerinden yinelemekten daha hızlıdır. ArrayList üzerinden yineleme, performans açısından önemli ölçüde yavaştır.

özet

Bazıları, dizilerin bir programda uygulanmasının, dizilerin düşük düzeyli bir veri yapısı olması nedeniyle ArrayLists ile aynı işlemi yapmaktan daha hızlı sonuçlar alabileceğini düşünürken, performans hangi işlemi gerçekleştirdiğinize bağlı olarak değişebilir. ArrayList'in boyutu dinamik olarak artırılabilir veya azaltılabilirken ArrayList'in işlevsellik açısından ArrayList üzerinde küçük bir kenarı vardır. Ancak, farklılıklara rağmen, bazı benzerlikleri de paylaşıyorlar. Her ikisi de Java'da nesneleri depolamanızı sağlayan dizin tabanlı veri yapılarıdır ve her ikisi de null değerlere ve yinelemelere izin verir. Peki, önceden nesnelerin boyutunu biliyorsanız, bir dizi ile gitmelisiniz ve boyuttan emin değilseniz, ArrayList ile git.