Java Programming

Java’da Etkin Dizi Birleştirme

Spread the love

Java, yerleşik bir dizi birleştirme işlemi sunmaz. Dizilerin sabit bir boyutu olduğundan, iki diziyi birleştirmek için daha büyük yeni bir dizi oluşturmak ve elemanları kopyalamak gerekir. Bu makale, bunu başarmak için üç etkili yöntemi ele almaktadır.

İçindekiler Tablosu

Apache Commons Lang’in addAll() metodunu kullanma

Apache Commons Lang kütüphanesi, ArrayUtils sınıfı içinde kullanışlı addAll() metodunu sağlar. Bu, dizi birleştirmeyi önemli ölçüde basitleştirir. Öncelikle, projenize bağımlılığı ekleyin (örneğin, Maven kullanarak):

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version> <!-- En son sürümü kullanın -->
</dependency>

Ardından, şu şekilde kullanın:

import org.apache.commons.lang3.ArrayUtils;

public class ArrayConcatenation {
    public static void main(String[] args) {
        int[] array1 = {1, 2, 3};
        int[] array2 = {4, 5, 6};

        int[] concatenatedArray = ArrayUtils.addAll(array1, array2);

        for (int i : concatenatedArray) {
            System.out.print(i + " "); // Çıktı: 1 2 3 4 5 6
        }
    }
}

Bu yaklaşım temiz ve verimlidir, ancak harici bir bağımlılık getirir.

System.arraycopy()‘i kullanma

Java’nın yerleşik System.arraycopy() metodu yerel bir çözüm sunar. Bu metot, bir dizinin bir bölümünü başka bir diziye kopyalar. Manuel dizi oluşturma ve indeks yönetimi gerektirir:

public class ArrayConcatenation {
    public static void main(String[] args) {
        int[] array1 = {1, 2, 3};
        int[] array2 = {4, 5, 6};

        int[] concatenatedArray = new int[array1.length + array2.length];

        System.arraycopy(array1, 0, concatenatedArray, 0, array1.length);
        System.arraycopy(array2, 0, concatenatedArray, array1.length, array2.length);

        for (int i : concatenatedArray) {
            System.out.print(i + " "); // Çıktı: 1 2 3 4 5 6
        }
    }
}

Bu metot verimlidir ve harici kütüphanelerden kaçınır, ancak daha az özlüdür.

Döngülerle Manuel Birleştirme

Daha açık, ancak daha az verimli bir yaklaşım, her iki diziyi de yineleyerek ve yeni bir diziyi doldurarak gerçekleşir:

public class ArrayConcatenation {
    public static void main(String[] args) {
        int[] array1 = {1, 2, 3};
        int[] array2 = {4, 5, 6};

        int[] concatenatedArray = new int[array1.length + array2.length];

        for (int i = 0; i < array1.length; i++) {
            concatenatedArray[i] = array1[i];
        }
        for (int i = 0; i < array2.length; i++) {
            concatenatedArray[array1.length + i] = array2[i];
        }

        for (int i : concatenatedArray) {
            System.out.print(i + " "); // Çıktı: 1 2 3 4 5 6
        }
    }
}

Bu metot basit ve anlaşılması kolaydır, bu da onu yeni başlayanlar için uygun hale getirir. Bununla birlikte, özellikle büyük diziler için diğer metotlardan daha az verimlidir.

En uygun yaklaşım, öncelikleriniz bağlıdır: addAll() özlüğü, arraycopy() harici kütüphaneler olmadan verimliliği ve manuel döngü ise açıklığı sunar. Farklı dizi türleri için kodu ayarlayın (örneğin, String[], double[]).

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir