logo

Java'da Array'e öğe ekleme

Dizi, bellekte bitişik konumlarda saklanan benzer türdeki öğelerin koleksiyonudur. Bir dizinin temel avantajı, dizi elemanlarına rastgele erişebilmemiz, oysa bağlantılı bir listenin elemanlarına rastgele erişilememesidir.

İçinde Java , Diziler değişken veri türleridir, yani dizinin boyutu sabittir ve Array'e doğrudan yeni bir öğe ekleyemiyoruz. Ancak diziye öğe eklemenin çeşitli yolları vardır. Diyelim ki bir dizi dizimiz var ve ona öğeler eklememiz gerekiyor. Arr'a eleman eklemek için aşağıdaki yöntemleri kullanabiliriz.

  1. arr'dan daha büyük boyutlu bir dizi oluşturarak.
  2. ArrayList'i kullanarak
  3. Dizinin boyutunu ayarlamak için öğeyi kaydırarak.

Açıkladığımız yollara içeriden bir göz atalım.

Daha büyük boyutlu bir dizi oluşturma

Java dizisine eleman eklemek için daha büyük boyutlu başka bir dizi oluşturabilir ve dizimizdeki tüm elemanları başka bir diziye kopyalayıp yeni değeri yeni oluşturulan dizinin sonuncusuna yerleştirebiliriz. Ancak diziye öğe eklemenin etkili bir yolu değildir. Aşağıdaki örnekte, yeni oluşturulan bir newArr dizisinin yardımıyla arr dizisine bir öğe 7 eklenir. Aşağıdaki örneği düşünün.

 import java.util.Arrays; public class ArrayExample { public static void main(String[] args) { // TODO Auto-generated method stub int arr[] = {1,2,3,4,5,6}; int n = arr.length; int newArr[] = new int[n+1]; int value = 7; System.out.println(Arrays.toString(arr)); for(int i = 0; i<n; i++) { newarr[i]="arr[i];" } newarr[n]="value;" system.out.println(arrays.tostring(newarr)); < pre> <h3>Using ArrayList</h3> <p>We can use <a href="/java-arraylist">ArrayList</a> as the intermediate structure and add the elements into the ArrayList using the add () method. ArrayList is a data structure that allows us to dynamically add elements. However, we can convert the ArrayList to the array by using the toArray() method. Hence this process involves the following steps.</p> <ol class="points"> <li>Convert Array into ArrayList using asList() method.</li> <li>Add elements into the array list using the add() method.</li> <li>Convert the ArrayList again to the array using the toArray() method.</li> </ol> <p>Consider the following example.</p> <pre> import java.util.ArrayList; import java.util.Arrays; public class JavaAddElementUsingList { public static void main(String[] args) { // TODO Auto-generated method stub Integer arr[] = {1,2,3,4,5,6}; System.out.println(&apos;Array:&apos;+Arrays.toString(arr)); ArrayList arrayList = new ArrayList(Arrays.asList(arr)); arrayList.add(7); arr = arrayList.toArray(arr); System.out.println(&apos;Array after adding element: &apos;+Arrays.toString(arr)); } } </pre> <p> <strong>Output:</strong> </p> <pre> Array:[1, 2, 3, 4, 5, 6] Array after adding element: [1, 2, 3, 4, 5, 6, 7] </pre> <h3>Shifting elements to adjust the size of the array</h3> <p>In this method, we will add the elements to the specified index in the array. Likewise, the above two processes will use a new destination array with a larger size than the original array. However, it will be tricky to shift the destination array elements after copying all elements from the original array to destination array.</p> <p>In this method, we will,</p> <ol class="points"> <li>Create a new destination array with a larger size than the original array.</li> <li>Copy all the elements from the original array to the new destination array</li> <li>Shift the elements after the given index to the right until it reaches the end of the array.</li> <li>Insert the new element at the given index.</li> </ol> <p>Consider the following example in which we will add a specific value at the given index 3 in the original array using a destination array.</p> <pre> import java.util.Arrays; public class JavaAddElementArraySpecified { public static void main(String[] args) { Integer arr[] = {1,2,3,4,5,6}; int n = arr.length; int index = 3; System.out.println(&apos;Original Array: &apos;+Arrays.toString(arr)); Integer newArr[] = new Integer[n+1]; int j = 0; for(int i = 0; i<newarr.length; i++) { if(i="=index)" newarr[i]="7;" }else j++; } newarr[index]="7;" system.out.println('array after adding value: '+arrays.tostring(newarr)); < pre> <p> <strong>Output:</strong> </p> <pre> Original Array: [1, 2, 3, 4, 5, 6] Array after adding value: [1, 2, 3, 7, 4, 5, 6] </pre> <hr></newarr.length;></pre></n;>

Çıktı:

 Array:[1, 2, 3, 4, 5, 6] Array after adding element: [1, 2, 3, 4, 5, 6, 7] 

Dizinin boyutunu ayarlamak için öğeleri kaydırma

Bu yöntemde elemanları dizide belirtilen indekse ekleyeceğiz. Benzer şekilde yukarıdaki iki işlem, orijinal diziden daha büyük boyutlu yeni bir hedef dizi kullanacaktır. Ancak, tüm elemanları orijinal diziden hedef diziye kopyaladıktan sonra hedef dizi elemanlarını kaydırmak zor olacaktır.

Bu yöntemde şunları yapacağız:

  1. Orijinal diziden daha büyük boyutta yeni bir hedef dizi oluşturun.
  2. Orijinal dizideki tüm öğeleri yeni hedef diziye kopyalayın
  3. Verilen dizinden sonraki elemanları dizinin sonuna ulaşıncaya kadar sağa kaydırın.
  4. Yeni öğeyi verilen dizine ekleyin.

Bir hedef dizi kullanarak orijinal dizideki verilen 3. indekse belirli bir değer ekleyeceğimiz aşağıdaki örneği düşünün.

 import java.util.Arrays; public class JavaAddElementArraySpecified { public static void main(String[] args) { Integer arr[] = {1,2,3,4,5,6}; int n = arr.length; int index = 3; System.out.println(&apos;Original Array: &apos;+Arrays.toString(arr)); Integer newArr[] = new Integer[n+1]; int j = 0; for(int i = 0; i<newarr.length; i++) { if(i="=index)" newarr[i]="7;" }else j++; } newarr[index]="7;" system.out.println(\'array after adding value: \'+arrays.tostring(newarr)); < pre> <p> <strong>Output:</strong> </p> <pre> Original Array: [1, 2, 3, 4, 5, 6] Array after adding value: [1, 2, 3, 7, 4, 5, 6] </pre> <hr></newarr.length;>