Java'da ArrayList: Yeni Başlayanlar İçin Bir Giriş [2022]

Yayınlanan: 2022-11-22

Bir dizi, her programlama dilinde bir dezavantajı olan yaygın ve temel bir veri yapısıdır - boyutu sabittir. Java'daki ArrayList'in bu konuda nasıl yardımcı olabileceğini görelim.

Bir dizi iki tür olabilir: statik dizi veya dinamik dizi. Java gibi programlama dillerinde bir dizi dinamik olarak artırılamaz. Bunun yerine, dizinin boyutu, dizinin başlatılması sırasında bildirilir. Ancak çoğu durumda bu, birçok soruna yol açabilir. Bu sorunu çözmek için Java'da ArrayLists kullanılır. Bir öğe bir ArrayList'e gönderildiğinde dizi boyutu otomatik olarak artar.

Bu makalede, Java'daki ArrayLists hakkında bilgi edineceksiniz. Array ve ArrayList arasındaki temel farkı anlayacak ve ayrıca farklı ArrayList türleri ve bunların nasıl kullanılacağı hakkında bilgi edineceksiniz.

Array ve ArrayList

Array ve ArrayList arasındaki temel fark, Array boyutunun statik olmasıdır, ancak ArrayList boyutunun dinamik olabilmesidir. Bir Dizi sabit olduğundan, dizi üzerinde yineleme süresi, dinamik bir diziden daha az zaman alır.

Ayrıca aralarında birkaç fark daha var.

  • Statik bir dizi, tek veya çok boyutlu olabilir, ancak bir ArrayList yalnızca tek boyutlu olabilir.
  • Dizi, Java'da bulunan ilkel bir veri yapısıdır. Ancak bir ArrayList, Java'daki Collection Framework API'nin bir parçasıdır. Dizilerin üzerine inşa edilmiştir.
  • Dizileri ilkel veri türleri ile bildirebilirsiniz. İlkel veri türleri bir ArrayList'te kullanılamaz. İlkel bir veri türü kullanmak istiyorsanız, veri türünün karşılık gelen sarmalayıcı sınıfını kullanmanız gerekir.

Java'daki ArrayList Türleri

ArrayLists herhangi bir türde olabilir. Ancak bir ArrayList'te ilkel veri türlerini geçiremeyeceğiniz için karşılık gelen sarmalayıcı sınıfını geçirmeniz gerekir.

Integer veya String gibi sarmalayıcı sınıfları geçirerek tamsayı veya dize türleri gibi basit veri türleri ekleyebilirsiniz.

ArrayLists of ArrayLists, hashmaps, vb. gibi karmaşık türleri de iletebilirsiniz.

Bir ArrayList içinde özel bir sınıf kullanma örneğine bir göz atalım.

 import java.util.ArrayList; class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } public void getUser() { System.out.println("Name: " + name + " Age: " + age); } } class Main { public static void main(String[] args) { ArrayList<User> users = new ArrayList<>(); users.add(new User("Subha", 25)); users.add(new User("Dan", 32)); users.forEach(user -> { user.getUser(); }); } } Output: Name: Subha Age: 25 Name: Dan Age: 32

Yukarıdaki kod örneğinde, User türünde bir ArrayList oluşturulur. Aşağıdaki örnekte kullanılan yöntemler hakkında daha fazla bilgi edineceksiniz.

Java'da ArrayList Oluşturma

Java'da bir ArrayList'in temellerini zaten anladınız. Şimdi bir ArrayList'in sözdizimine bir göz atalım ve ardından Java kodunda nasıl kullanılabileceğini de göreceğiz.

 ArrayList<Type> listName = new ArrayList<>();

Yukarıdaki kod parçacığı, bir ArrayList tanımlamanın sözdizimini gösterir. Type , ArrayList'in türünü tanımlar. Örneğin, tamsayı veri türlerinin bir ArrayList'ini bildirmek istiyorsanız, <Integer> iletebilirsiniz. İlkel bir veri türü olduğu için int geçiremeyeceğinizi unutmayın.

ArrayList'i programlarınızda kullanmak için java.util.ArrayList de içe aktarmanız gerekir. İşte bir ArrayList bildiren bir programın temel bir örneği:

 import java.util.ArrayList; class Main { public static void main(String[] args) { // Declare An ArrayList ArrayList<String> rainbow = new ArrayList<>(); System.out.println(rainbow); } } Output: []

Yukarıdaki kodda, rainbow adlı String türünde bir ArrayList bildirilir.

ArrayList ile çalışmak için birden fazla yöntem mevcuttur. Birkaç yönteme bir göz atalım.

add Yöntemi

ArrayList sınıfı, öğe ekleme veya çıkarma, değer alma, belirli bir konumda bir değer ayarlama, bir ArrayList'i temizleme vb. işlemleri gerçekleştirmek için çeşitli yöntemler sağlar.

Göreceğimiz ilk yöntem, add yöntemidir.

add yöntemi, bir ArrayList tek bir öğe eklemek için kullanılır. add sözdizimi aşağıda gösterilmiştir.

 arrayList.add(int i, Element)

Şimdi sözdizimini anlayalım. İlk parametre i , eklemek istediğiniz öğenin bulunduğu dizin konumunu temsil eden isteğe bağlı bir parametredir. İkinci parametre Element , eklemek istediğiniz elementtir. Şimdi bir örneğe bakalım.

 rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet]

rainbow.add("Violet") , bir ArrayList'in sonuna bir öğe ekler. rainbow.add(0, "Red") , Red öğesini ArrayList'in 0 dizin konumuna ekler. add() yöntemi, bir öğe başarıyla eklendiğinde true değerini döndürür.

get Yöntemi

get yöntemi, bir ArrayList'ten belirli bir konumdan değer almak için kullanılır.

 arrayList.get(int i);

Yukarıdaki sözdiziminde gösterilen i , dizin konumudur. Örneğin, öğeyi 1 dizin konumundan almak istiyorsanız, arrayList.get(1) yazın.

 rainbow.add("Violet"); rainbow.add(0, "Red"); String color = rainbow.get(1); System.out.println(color); Output: Violet

Yukarıdaki kod, ArrayList rainbow Violet döndürür.

set Yöntemi

set yöntemi, bir öğenin değerini değiştirmek için kullanılır. Örneğin, 0 dizin konumundaki bir öğenin değerini değiştirmek isterseniz, rainbow adında bir ArrayList'iniz olduğunu varsayarak rainbow.set(0, "Purple") yazarsınız.

set yönteminin sözdizimi aşağıdaki gibidir,

 arrayList.set(int i, Element);

Burada i , dizin konumudur ve Element , yeni öğenin değeridir.

 rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet] rainbow.set(1, "Purple"); System.out.println(rainbow); Output: [Red, Purple]

Yukarıdaki örnekte, rainbow adlı bir ArrayList'e iki değer ekliyoruz. Önce Violet elemanı eklenir, ardından ArrayList'in 0 konumuna Red öğesini ekliyoruz. Bu noktada, ArrayList'in tamamı şöyle görünür, [Red, Violet] .

Şimdi, dizin konumu 1 öğe, set yöntemi kullanılarak Purple değeriyle değiştirilir. Değeri değiştirdikten sonra, ArrayList [Red, Purple] gibi görünecektir.

remove Yöntemi

ArrayList remove yöntemi, ArrayList'ten bir değeri kaldırmak için kullanılır. Kaldırmak istediğiniz değerin değerini veya dizin konumunu iletebilirsiniz. remove yönteminin sözdizimi aşağıda gösterilmiştir:

 arrayList.remove(Object value); // or arrayList.remove(int i);

Yöntemi daha iyi anlamak için bir örnek verelim. Bu değerlere sahip rainbow adında bir ArrayList'iniz olduğunu varsayalım [Violet, Red, Green] . Şimdi, Red ArrayList'ten kaldırmak istiyorsanız, rainbow.remove("Red"); . rainbow ArrayList'te bu yöntemi çağırmak, Red öğesini ondan kaldıracaktır.

 // rainbow = [Violet, Red, Green] rainbow.remove("Red"); System.out.println(rainbow); Output: [Violet, Green]

Öğeyi dizin konumundan kaldırmak için dizin konumunu da iletebilirsiniz.

 //rainbow = [Red, Green] rainbow.remove(0); // Remove item at index position 0 System.out.println(rainbow); Output: [Green]

clear Yöntem

Adından da anlaşılacağı gibi clear yöntemi, bir ArrayList'teki tüm öğeleri kaldırır. Sözdizimi basittir ve herhangi bir parametre almaz.

 arraylist.clear()

Bir örneğe bakalım,

 rainbow.clear(); System.out.println(rainbow); Output: []

clear yöntemi herhangi bir değer döndürmez. Bunun yerine, verilen ArrayList'in değerini temizler.

size Yöntemi

size yöntemi, verilen ArrayList'in boyutunu döndürür. Bu yöntem ayrıca herhangi bir parametre almaz. Sözdizimi aşağıda gösterilmiştir.

 arrayList.size();

arrayList burada ArrayList'in adıdır. size yöntemini bir örnek yardımıyla anlayalım.

 ArrayList<String> rainbow = new ArrayList<>(); rainbow.add("Violet"); rainbow.add("Red"); rainbow.add("Green"); System.out.println(rainbow.size()); Output: 3

Bu yöntem, ArrayList boyutunun değerini döndürür. Yukarıdaki örnekte, ArrayList rainbow üç değerden oluşur, bu nedenle size yöntemi 3 değerini döndürür.

Çözüm

Bu makale ArrayList'in ne olduğunu ve Array'den nasıl farklı olduğunu ele aldı. ArrayList sınıfı için mevcut çeşitli yöntemler kullanılarak bir ArrayList'in nasıl bildirilebileceğini ve kullanılabileceğini de gördük.

Java öğrenme konusunda daha derine inmek istiyorsanız, bu çevrimiçi Java kurslarına göz atın.