
Bir 2B diziyi kopyalama sorununun çözümü, bir 1B diziyi kopyalamak kadar kolay değildir, çünkü yalnızca referansları iç dizilere kopyalamak, alt dizilerin kendilerinin derin kopyalarını oluşturmayacaktır. Bu sorunu çözmek için çeşitli yaklaşımlar vardır ve böyle bir yöntemi, kodun adım adım incelenmesini ve uygulanmasını ayrıntılı olarak tartışacağız.
Öncelikle, bir 2B diziyi kopyalayan bir işlev oluşturalım:
genel statik int[][] copy2DArray(int[][] orijinal) {
int[][] kopya = yeni int[orijinal.uzunluk][];
for (int i = 0; i < orijinal.uzunluk; i++) { kopya[i] = Diziler.kopyaOf(orijinal[i], orijinal[i].uzunluk); } iade kopyası; } [/code] Yukarıdaki kodda, parametresi olarak **original** adlı 2B tamsayı dizisini alan `copy2DArray` adlı bir işlev tanımlayarak başlıyoruz. İşlevi tanımladıktan sonra, orijinal diziyle aynı uzunlukta, **kopya** adlı yeni bir 2B dizi oluşturuyoruz. Daha sonra orijinal dizinin öğeleri arasında yineleme yapmak için bir for döngüsü kullanırız ve bunları "java.util.Arrays" kitaplığından "Arrays.copyOf()" yöntemini kullanarak yeni diziye kopyalarız. Bu yöntem, alt dizilerin derin bir kopyasını oluşturur. Son olarak, 2B dizinin kopyasını döndürürüz.
2D Dizileri Anlamak
Java'da **2B dizi** temelde bir diziler dizisidir. Satırları ve sütunları olan bir tablo olarak görselleştirilebilir. Öğelere iki dizin kullanılarak erişilebilir: biri satır için, diğeri sütun için. Java'da 2B dizilerle çalışırken, verilere doğru bir şekilde erişebilmek ve bunları değiştirebilmek için her iki dizini de takip etmeniz önemlidir.
- Aşağıdaki sözdizimi kullanılarak bir 2B dizi oluşturulur:
`dataType[][] diziAdı = yeni dataType[rowSize][columnSize];` - 2B dizideki öğelere iki dizinle erişilebilir: `diziAdı[satır][sütun];`
- Bir 2B dizi boyunca yineleme, tipik olarak iç içe geçmiş döngüler içerir.
Daha fazla dalmadan önce diziyi 2B olarak kopyala, alt dizilerin derin kopyalarını oluşturmanın neden hayati olduğunu anlamak önemlidir. Yüzeysel bir kopya yalnızca alt dizilere yapılan referansları kopyalar ve orijinalde yapılan herhangi bir değişiklik kopyayı da etkiler. Derin kopyalar oluşturarak, bir dizideki değişikliklerin diğerini etkilememesini sağlıyoruz.
Java.util.Arrays Kitaplığı
Çözümümüzde, dizilerle çalışmak için yararlı yardımcı yöntemler sağlayan "java.util.Arrays" kitaplığını kullandık. Bir 2B diziyi kopyalamaya ilişkin özel sorun için, alt dizilerin derin kopyalarını oluşturmak üzere "Arrays.copyOf()" yöntemini kullandık.
- "Arrays.copyOf()" yöntemi, orijinal dizinin derin bir kopyasını oluşturur. İki parametre alır: orijinal dizi ve yeni dizinin uzunluğu.
- Bu kitaplıktaki diğer yararlı yöntemler arasında "Arrays.fill()", "Arrays.sort()" ve "Arrays.binarySearch()" yer alır.
Sonuç olarak, Java'da bir 2B diziyi kopyalamak, orijinal dizide yapılan değişikliklerin kopyayı etkilemesini önlemek için derin bir kopya gerektirir. "Java.util.Arrays" kitaplığından "Arrays.copyOf()" yöntemini kullanarak bir çözüm gösterdik ve oluşturulan işlev hem verimli hem de anlaşılması kolay. 2B diziler, Java.util.Arrays kitaplığı ve dizi işleme konusundaki derin anlayışımızla, artık Java'da daha büyük bir güvenle ve daha sağlam çözümlerle diğer zorlukların üstesinden gelebiliriz.