Java’da dizi sınıfı metotları ile dizilerde liste yapma, kopyalama, eleman atama gibi işlemleri kısa bir yol ile uygulayabilirsiniz. Tabi bu metotlara geçmeden önce dizilerin nasıl kullanıldığına veya diziler ile ilgili örneklere göz atmak isterseniz önceki yazılarımda yazdığım java’da diziler konusuna göz atabilirsiniz. Şimdi dizi sınıfı metotlarımıza geçelim.
İçindekiler
Arrays.asList Metodu
Dizilerimizi Arrays.asList() metodu ile bir liste yapısına dönüştürebiliriz.
1 2 3 4 5 6 7 8 9 10 11 12 13 | String array[]= {"Muhiddin","Selami","Hamdi","Ceylan"}; Integer array1[]= {90,21,55,67}; List listele=new ArrayList(); List listele1=new ArrayList();//Dizilerimizi liste görünümüne aldık. listele=Arrays.asList(array); listele1=Arrays.asList(array1);//aslist metodumuz ile liste yapısına dönüştürdük. //listelediğimiz dizilerimizi yazdırdık. System.out.println(listele.get(0)); System.out.println(listele); System.out.println(listele1.get(0)); System.out.println(listele1); |
Ekran Çıktısı
1 2 3 4 | Muhiddin [Muhiddin, Selami, Hamdi, Ceylan] 90 [90, 21, 55, 67] |
Yapmış olduğumuz örnekte oluşturduğumuz dizilerimizi asList() metodunu kullanarak liste yapısında kopyalama işlemi yapmış olduk.
Arrays.CopyOf Metodu
Arrays.CopyOf() metodumuz ile dizinin belirlen bir bölümünü başka bir diziye kopyalayabiliriz.
1 2 3 4 5 6 7 8 9 10 11 12 13 | // dizimizin orijinal hali. int[] a = new int[] {23,62,98,34,16,77,45}; System.out.println("Dizimizin normal çıktısı"); for (int i = 0; i < a.length; i++) //dizimizin normal çıktısını verdik System.out.print(a[i] + " "); int[] copy = Arrays.copyOf(a, 3);//dizimizide kopyalancak kısımı belirttik. System.out.println("\nDizimizin kopyalanmış hali"); for (int i = 0; i < copy.length; i++) System.out.print(copy[i] + " "); //dizimizin kopyalanmış halini yazdırdık. |
Ekran Çıktısı
1 2 3 4 | Dizimizin normal çıktısı 23 62 98 34 16 77 45 Dizimizin kopyalanmış hali 23 62 98 |
Örneğimizde Arrays.copyOf metodumuz ile kopyalama örneğimizde dizimizin orijinal çıktısını yazdırdık. Daha sonra kopyalanacak alanı int[] copy = Arrays.copyOf(a, 3); şeklinde belirttik, ilk olarak parantez içerisinde a dizimizi belirttik sonrasında ise 3 ile dizimizin ilk 3 sayısının kopyalanmasını istediğimizi belirttik.
Arrays.copyOfRange() Metodu
Dizilerde kopyalama yönteminden bir farklısı da Arrays.copyOfRange() metodu ile kopyalama işlemi yapmaktır. Bu yöntem ile kopyalama işlemimizi, dizimizin hangi elemanından itibaren kopyalanmaya başlanacağını belirtebiliriz. Bu metodumuz ile örnek yapalım.
1 2 3 4 5 6 7 8 9 10 | //dizimizi oluşturduk int a[] = { 55, 34, 22, 6, 98, 65, 68 }; //hangi aralıkta kopyalanması gerektiğini belirttik. int[] kopyala = Arrays.copyOfRange(a, 2, 6); System.out.println("Kopyalanan sayılarımız :"); for (int i : kopyala){ System.out.print(i + " "); } System.out.println(); |
Ekran Çıktısı
1 2 | Kopyalanan sayılarımız : 22 6 98 65 |
Örneğimizde Arrays.copyOfRange() metodumuz ile kopyalama işlemimizi yaptık. Arrays.copyOfRange() metodumuz ile örneğimizde Arrays.copyOfRange(a, 2, 6); ile kopyalanacak indisleri belirttik, 2 ve 6 indisleri aralığındaki sayıları kopyalamış olduk.
Arrays.fill Metodu
Arrays.fill metodumuz ile dizilerimizin belirli bir bölümlerine değerler atayabiliriz. Bu metodumuz ile örnek yapalım.
1 2 3 4 5 6 7 | //Dizimizi oluşturduk. int a[] = {99, 99, 99, 99, 99, 99, 99, 99}; //1. indisten 3. indise kadar 55 yaz Arrays.fill(a, 1, 3, 55); System.out.println(Arrays.toString(a)); |
Ekran Çıktısı
1 | [99, 55, 55, 99, 99, 99, 99, 99] |
Yapmış olduğumuz örneğimizde Arrays.fill metodu ile dizimize veri atama işlemini yaptık. Dizimizi oluşturduktan sonra Arrays.fill(a, 1, 3, 55) şeklinde bir değer atama işlemi belirttik, bu değer atama işlemimizde a[] dizimizin içerisinden 1’den 3. indis’e kadar olan elemanlara 55 sayısını atamasını belirttik. Böylelikle dizimize eleman atamış olduk.
Dizilerde sınıf metodlarından bahsettiniz, çok güzel bir konuya parmak bastınız. Lakin konunun bel kemiği ehemmiyetinde olan sorunun havada kaldığı inancı içerisinde yanıp tutuşan küçük bir meşaleyim. Bu sınıf metodları arasında kast sistemi var mı? Yani dededen [copy-of-range] metodu olan 2020 doğumlu bir genç şu dijital çağda halen [copy-of-range] metodu olarak mı kalacak yoksa [as-list] yahut [fill] gibi kendi iradesine dayandırdığı bir metodu seçebilecek mi?