Bir Diziyi Tersine Çevirmek, Java’daki Çok Önemli İşlemlerden biridir. Bu yazıda, Java’da bir Diziyi Tersine Çevirmeyi Öğreneceğiz:
Bazen programcıların dizileri son elemandan başlayarak işlemesi gerekir, bu durumda, diziyi tersine çevirmek her zaman etkilidir, böylece ilk eleman dizideki son konuma yerleştirilir ve ikinci eleman ikinci son konuma yerleştirilir. dizide ve böylece son eleman ilk dizinde olana kadar.
Diziyi Ters Sırada Yazdırma
Alternatif olarak, diziyi tersine çevirmeden ters sırada yazdırmak istiyorsak, bunu yalnızca dizinin sonundan yazdırmaya başlayacak bir for döngüsü sağlayarak yapabiliriz. Bu, diziyi herhangi bir işlem yapmadan ters sırada yazdırmak istediğimiz sürece iyi bir seçenektir.
Aşağıdaki program diziyi ters sırada yazdırır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import java.util.*; import java.util.stream.*; public class Main { public static void main(String[] args) { Integer[] intArray = {10,20,30,40,50,60,70,80,90}; //ilk elemandan başlayarak dizi yazdır System.out.println("Dizi:"); for(int i=0;i<intArray.length;i++) System.out.print(intArray[i] + " "); System.out.println(); //son elemandan başlayarak diziyi yazdır System.out.println("Ters Çevrilen Dizi:"); for(int i=intArray.length-1;i>=0;i--) System.out.print(intArray[i] + " "); } } |
Çıktı:
1 2 3 4 5 6 |
Dizi: 10 20 30 40 50 60 70 80 90 Ters Çevrilen Dizi: 90 80 70 60 50 40 30 20 10 |
Bu, yalnızca diziyi yazdırmak için uygun bir seçenektir.
Java, dizideki öğelerin dizinlerini gerçekten tersine çevirmek için çeşitli yöntemler sağlar. Aşağıda, bu eğitimde ayrıntılı olarak tartışacağımız çeşitli yöntemler listelenmiştir.
ArrayList ters yöntemini kullanma
Döngü için geleneksel kullanma
Yerinde tersine çevirmeyi kullanma
Diziyi ArrayList Kullanarak Ters Çevirme
Java’da bir diziyi tersine çevirmek, koleksiyon çerçevesinde bulunan ‘ters’ yöntemi kullanılarak yapılabilir. Ancak bunun için önce bir diziyi listeye dönüştürmeniz gerekir, çünkü ‘reverse’ yöntemi listeyi argüman olarak alır.
Aşağıdaki program, ‘reverse’ yöntemini kullanarak bir diziyi tersine çevirir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import java.util.*; public class Main { /*function reverses the elements of the array*/ static void reverse(Integer myArray[]) { Collections.reverse(Arrays.asList(myArray)); System.out.println("Reversed Array:" + Arrays.asList(myArray)); } public static void main(String[] args) { Integer [] myArray = {1,3,5,7,9}; System.out.println("Original Array:" + Arrays.asList(myArray)); reverse(myArray); } } |
Çıktı:
1 2 3 4 |
Original Array:[1, 3, 5, 7, 9] Reversed Array:[9, 7, 5, 3, 1] |
Bu programda, bir diziyi listeye değiştirerek ters fonksiyonunu kullanıyoruz.
Benzer şekilde, aşağıdaki örnekte gösterildiği gibi bir dizi dizisini de tersine çevirebiliriz.
Örnek:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import java.util.*; public class Main { /*işlev dizinin öğelerini tersine çevirir*/ static void reverse(String myArray[]) { Collections.reverse(Arrays.asList(myArray)); System.out.println("Reversed Array:" + Arrays.asList(myArray)); } public static void main(String[] args) { String [] myArray = {"bir", "iki", "üç", "dört", "beş", "altı","yedi"}; System.out.println("Original Array:" + Arrays.asList(myArray)); reverse(myArray); } } |
Çıktı:
1 2 3 4 |
Original Array:[bir, iki, üç, dört, beş, altı, yedi] Reversed Array:[yedi, altı, beş, dört, üç, iki, bir] |
Yukarıdaki program bir dizi dizisi tanımlar. Listeye çevirerek ve üzerinde ters yöntemi kullanarak diziyi ters çeviriyoruz.
Bir Diziyi Geleneksel For Döngüsü Kullanarak Tersine Çevirme
Diziyi tersine çevirmek için başka bir yaklaşım, yeni bir diziye sahip olabileceğiniz bir diziyi tersine çevirmek için ayrı bir yöntem yazmak ve orijinal dizinin öğelerini bu yeni diziye ters şekilde yerleştirmektir.
Aşağıdaki uygulamayı kontrol edin.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
public class Main { static void reverse_array(char char_array[], int n) { char[] dest_array = new char[n]; int j = n; for (int i = 0; i < n; i++) { dest_array[j - 1] = char_array[i]; j = j - 1; } System.out.println("Reversed array: "); for (int k = 0; k < n; k++) { System.out.print(dest_array[k] + " "); } } public static void main(String[] args) { char [] char_array = {'M','E','R','H','B','A'}; System.out.println("Original array: "); for (int k = 0; k <char_array.length; k++) { System.out.print(char_array[k] + " "); } System.out.println(); reverse_array(char_array, char_array.length); } } |
Çıktı:
1 2 3 4 5 6 |
Original array: M E R H B A Reversed array: A B H R E M |
Burada örnek olarak bir karakter dizisi kullandık. Ters fonksiyonunu kullanarak dizi elemanlarını birer birer tersine çeviririz ve ardından ters çevrilmiş diziyi görüntüleriz.
Dizinin Yerinde Tersine Çevirilmesi
Dizi tersine çevirmenin üçüncü yöntemi, ayrı bir dizi kullanmadan dizinin öğelerini yerinde tersine çevirmektir. Bu yöntemde dizinin ilk elemanı, dizinin son elemanı ile değiştirilir. Benzer şekilde, dizinin ikinci elemanı dizinin sondan ikinci elemanı ile değiştirilir ve bu böyle devam eder.
Bu şekilde dizi geçişinin sonunda tüm diziyi tersine çevirmiş olacağız.
Aşağıdaki program, dizinin yerinde tersine çevrilmesini gösterir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import java.util.Arrays; public class Main { /*dizinin ilk öğesini son öğeyle değiştirin; ikinci eleman ile sondan ikinci eleman vb.*/ static void reverseArray(int intArray[], int size) { int i, k, temp; for (i = 0; i < size / 2; i++) { temp = intArray[i]; intArray[i] = intArray[size - i - 1]; intArray[size - i - 1] = temp; } /*ters diziyi yazdır*/ System.out.println("Reversed Array: \n" + Arrays.toString(intArray)); } public static void main(String[] args) { int [] intArray = {11,22,33,44,55,66,77,88,99}; //orijinal diziyi yazdır System.out.println("Original Array: \n" + Arrays.toString(intArray)); //function call to reverse the array reverseArray(intArray, intArray.length); } } |
Çıktı:
1 2 3 4 5 6 |
Original Array: [11, 22, 33, 44, 55, 66, 77, 88, 99] Reversed Array: [99, 88, 77, 66, 55, 44, 33, 22, 11] |
Sıkça Sorulan Sorular
1) Java’da Bir Diziyi Nasıl Tersine Çevirirsiniz?
Cevap: Java’da bir diziyi tersine çevirmek için üç yöntem vardır.
Dizide gezinmek ve başka bir dizideki öğeleri ters sırada kopyalamak için bir for döngüsü kullanma.
Öğeleri ters sırada yerleştirmek için değiştirildiği yerinde tersine çevirmeyi kullanma.
Listelerde çalışan Koleksiyonlar arabiriminin ters yöntemini kullanma.
2) Java’da Bir Listeyi Nasıl Tersine Çevirirsiniz?
Cevap: Java’nın Koleksiyonlar arayüzü tarafından sağlanan ters yöntemi kullanabilirsiniz.
3) Hangi Diziyi Tersine Çevirme yöntemi daha iyidir?
Cevap: Normalde, bir diziyi listeye dönüştürmek ve onu ters yöntemi kullanarak tersine çevirmek en iyisidir. Ayrıca yerinde ters çevirme, diziyi tersine çevirmek için başka bir dizi kullanmaktan daha iyidir, çünkü bu bellekten tasarruf sağlar.
Bu yazıda, Java’da bir diziyi tersine çevirmek için çeşitli yöntemleri tartıştık. Gösteri amacıyla tamsayı verileri kullanmış olsak da, diziyi ilkel veya ilkel olmayan diğer verilerle tersine çevirmek için aynı yöntemleri uygulayabilirsiniz.
Yorum Yap