CodeGym /Java Blog /Acak /Cara Menambahkan Elemen Baru Ke Array Di Java
John Squirrels
Level 41
San Francisco

Cara Menambahkan Elemen Baru Ke Array Di Java

Dipublikasikan di grup Acak
Oh, array Java. Mereka adalah objek cinta dan kebencian yang kuat dari ratusan pengembang perangkat lunak pemula. Menambahkan elemen ke array yang sudah diinisialisasi tidak mungkin, kata mereka… Sebenarnya, itu mungkin, tetapi tidak dalam arti klasik… dan itu sangat tidak nyaman. Menambahkan elemen baru ke array yang sudah diinisialisasi adalah semacam trik. Namun, trik ini bisa berguna dalam wawancara ... dan terkadang dalam pekerjaan programmer. Untuk memastikan Anda menikmati penggunaan tipe data dan mengetahui cara melakukannya secara efisien, kami menulis panduan untuk menambahkan elemen baru ke larik Java. Selain melalui teori dan contoh kode dengan hati-hati, pastikan untuk memeriksa dan menyelesaikan soal latihan yang ditampilkan di pos. Cara Menambahkan Elemen Baru Ke Array Di Java - 1

Apa itu Array di Jawa

Mari kita ingat apa itu Array dan bagaimana cara membuatnya di Java. Jika Anda mengingatnya, silakan lewati subjudul berikutnya "5 Cara Menambahkan Elemen Baru ke Java Array". Dokumentasi Java resmi Oracle mengatakan bahwa array adalah serangkaian nilai yang dimiliki oleh tipe data yang sama. Satu set bilangan bulat adalah contoh sempurna dari sebuah array di Jawa . Semua nilai yang Anda tetapkan memiliki posisi tertentu dalam larik yang disebut index . Berikut adalah cara untuk mendeklarasikan dan menginisialisasi array:

int[] myArray = new int[10];
int[] myArray1 = {1, 0, 3, 17, 5, 6, 7, 8, 9, 10}
Dalam kasus pertama, kami mendefinisikan array myArray dan membuat Java mengalokasikan ruang untuk array 10 elemen, dalam myArray1 kedua , kami segera memasukkan 10 nilai ke dalamnya. Dalam kedua kasus tersebut, elemen 11 tidak bisa begitu saja didorong ke dalam array. Untuk melakukan operasi dengan array, pengembang memanipulasi indeks nilai yang berisi array. Apa yang harus kita lakukan? Mari kita lihat cara paling umum untuk menambahkan ke array.

5 Cara Menambahkan Elemen Baru ke Java Array

Nah, inilah trik kami untuk membuat yang abadi tampak bisa berubah.
  • Mengonversi Array menjadi Daftar
  • Buat larik baru dengan kapasitas lebih besar dan tambahkan elemen baru ke larik
  • Menerapkan System.arraycopy()
  • Menyalin array menggunakan Apache Commons
  • Menerapkan metode ArrayCopyOf()
Mari kita lihat lebih dekat cara-cara ini untuk menambahkan elemen ke dalam array.

1. Mengubah Array menjadi Daftar

Karena kita tidak dapat menambahkan elemen baru ke array secara langsung, hal terbaik berikutnya yang harus dilakukan adalah mengonversinya menjadi daftar, menambahkan elemen baru, dan mengubah kembali nilainya menjadi array. Cara pertama untuk mengonversi array menjadi daftar adalah dengan menggunakan asList() untuk membuat ArrayList baru. Setelah rentang nilai berhasil diubah, gunakan ListAdd() untuk memasukkan nilai. Setelah Anda tidak perlu lagi mengedit array, ubah kembali ke tipe data asli dengan bantuan metode toArray() . Dengan semua metode dan konversi, ini mungkin tampak membingungkan pada awalnya. Mari kita lihat contoh penggunaan asList() untuk memperjelas semuanya.

// Code for adding Java arrays to a program
import java.lang.*;
import java.util.*;
 
class ArrayDemo{
   //Let’s add a new element to an array
   public static Integer[] addX(Integer myArray[], int x) {
       int i;
       //turn array into ArrayList using asList() method
       List arrList = new ArrayList( Arrays.asList(myArray));
 
       // adding a new element to the array
       arrList.add(x);
 
       // Transforming the ArrayList into an array
       myArray = arrList.toArray(myArray);
       return myArray;
   }
   public static void main(String[] args) {
       int i;
       //initial array
       Integer myArray[] = { 0, 1, 2, 45, 7, 5, 17};
 
       //print the initial array out
       System.out.println("Initial Array: "
                          + Arrays.toString(myArray));
 
       //element to be added
       int x = 28;
 
       // call the method to add x in myArray
       myArray = addX(myArray, x);
 
       // print the updated array out
       System.out.println("Array with " + x + " added: "
                          + Arrays.toString(myArray));
   }
}
Outputnya adalah:
Array Awal: [0, 1, 2, 45, 7, 5, 17] Array dengan 28 ditambahkan: [0, 1, 2, 45, 7, 5, 17, 28]
Jadi, dalam program ini kami telah berhasil membuat array myArray dengan nilai 7, mengisinya dan mencetaknya. Kemudian kami memutuskan bahwa sepuluh nilai tidak cukup bagi kami. Ya, kami mengonversi myArray ke ArrayList arrList menggunakan metode Arrays.asList . Inilah 28, elemen yang akan ditambahkan. Kami menambahkannya ke ArrayList arrList , lalu mengubahnya kembali menjadi array menggunakan metode toArray() dan mencetak array baru.

2. Buat array baru dengan kapasitas lebih besar

Salah satu cara paling umum untuk menambahkan lebih banyak elemen ke array adalah dengan membuat array baru yang lebih besar dari awal, meletakkan elemen yang lama dan menambahkan elemen baru. Berikut adalah panduan langkah demi langkah dari proses tersebut:
  • Buat array baru dengan kapasitas a+n (a — kapasitas array asli, n — jumlah elemen yang ingin Anda tambahkan).
  • Tambahkan semua elemen rentang data sebelumnya ke yang baru, serta nilai baru.
  • Cetak array yang dihasilkan.
Coba buat array seperti itu sendiri dan bandingkan kode Anda dengan contoh di bawah ini:

// Java Program to add an element in an Array

import java.lang.*;
import java.util.*;

class ArrayDemo {
   //Method to add an element x into array myArray
   public static int[] addX(int myArray[], int x) {
       int i;

       // create a new array of a bigger size (+ one element)
       int newArray[] = new int[myArray.length + 1];

       // insert the elements from the old array into the new one
       for (i = 0; i < myArray.length; i++)
           newArray[i] = myArray[i];

       newArray[myArray.length] = x;
       return newArray;
   }

   public static void main(String[] args) {
       int i;

       // initial array of size 10
       int arr[]
               = {0, 1, 2, 45, 7, 5, 17};

       // print the initial array
       System.out.println("Initial Array: " + Arrays.toString(arr));

       // element to be added
       int x = 28;

       // call the addX method to add x in arr
       arr = addX(arr, x);
       // print the updated array
       System.out.println("Array with " + x + " added:" + Arrays.toString(arr));
   }
}
Outputnya adalah:
Array Awal: [0, 1, 2, 45, 7, 5, 17] Array dengan 28 ditambahkan: [0, 1, 2, 45, 7, 5, 17, 28]
Nah, cara menambahkan elemen baru ke dalam array ini adalah yang paling mudah.

3. Menerapkan System.arrayCopy()

System.arrayCopy() adalah metode yang banyak digunakan untuk mengalokasikan larik yang lebih besar di tujuan larik sumber. Pengembang dapat menentukan urutan yang ingin dia salin ke array baru di dalam tanda kurung metode. Untuk melihat bagaimana metode ini bekerja dan coba gunakan sendiri, lihat dan coba jalankan contoh di bawah ini:

import java.util.Arrays;

class ArrayDemo {
   private static Integer[] addElement(Integer[] myArray, int newElement) {
       //we create a new Object here, an array of bigger capacity 
       Integer[] array = new Integer[myArray.length + 1];
       System.arraycopy(myArray, 0, array, 0, myArray.length);
       array[myArray.length] = newElement;
       return array;
   }

   public static void main(String[] args) {
       Integer[] myArray = {20, 21, 3, 4, 5, 88};
       System.out.println("myArray before adding a new element: " + Arrays.toString(myArray));
       myArray = addElement(myArray, 12);
       System.out.println("myArray before adding a new element: " + Arrays.toString(myArray));
   }
}
Outputnya adalah:
myArray sebelum menambahkan elemen baru: [20, 21, 3, 4, 5, 88] myArray sebelum menambahkan elemen baru: [20, 21, 3, 4, 5, 88, 12]
Di sini kita telah membuat array myArray , mencetaknya dan menambahkan elemen baru menggunakan metode addElement kita , yang dibuat di System.arrayCopy() .

4. Menggunakan Apache Commons untuk menyalin array

Mari gunakan cara non-standar. Yakni, perpustakaan pihak ketiga Apache Commons lang. Ini adalah bagian dari proyek Apache Commons yang berfokus pada semua aspek komponen Java yang dapat digunakan kembali. Pengetahuan tentang proyek tidak akan berlebihan. Apache Commons lang memiliki metode add() yang dirancang khusus untuk memungkinkan perluasan array, ini menghemat banyak waktu dan tenaga pembuat kode. Perlu diingat bahwa metode add() Apache Commons ini didasarkan pada pemanggilan metode System.arraycopy() jika Anda harus menjawab ujian yang rumit atau pertanyaan wawancara. Untuk menambahkan pustaka ke proyek Anda, buka situs web Apache Commons dan unduh pustaka. Lalu buka File → Struktur Proyek → Perpustakaan> + dan pilih file jar yang diunduh.

import org.apache.commons.lang3.ArrayUtils;
import java.util.Arrays;

class ArrayDemo {
   private static <T> T[] append(T[] arr, T element) {
       return ArrayUtils.add(arr, element);
   }

   public static void main(String[] args) {
       Integer[] myArray = { 0, 1, 2, 3, 4};
       System.out.println("myArray: " + Arrays.toString(myArray));

       myArray = append(myArray, 5);
       System.out.println("new Array with the number added: " + Arrays.toString(myArray));
   }
}
Outputnya adalah:
myArray: [0, 1, 2, 3, 4] Array baru dengan nomor yang ditambahkan: [0, 1, 2, 3, 4, 5]

5. Menerapkan ArrayCopyOf()

ArrayCopyOf() adalah satu lagi metode untuk menambahkan elemen baru ke dalam array. Seperti Apache Commons lang add() secara internal memanggil System.arraycopy() untuk melakukan operasi ini. Namun sebagian besar pengembang lebih memilih ArrayCopyOf() karena memungkinkan mereka untuk menjaga agar kode tetap ringkas dan mudah dibaca. Berikut adalah contoh penggunaan ArrayCopyOf() untuk menambahkan elemen baru ke dalam array:

import java.util.Arrays;
class ArrayDemo {
   private static <X> X[] addElement(X[] myArray, X element) {
       X[] array = Arrays.copyOf(myArray, myArray.length + 1);
       array[myArray.length] = element;
       return array;
   }
   public static void main(String[] args) {
       Integer[] myArray = {20, 21, 3, 4, 5, 88};
       System.out.println("myArray before adding a new element: " + Arrays.toString(myArray));
       myArray = addElement(myArray, 12);
       System.out.println("myArray before adding a new element: " + Arrays.toString(myArray));
   }
}
Outputnya adalah:
myArray sebelum menambahkan elemen baru: [20, 21, 3, 4, 5, 88] myArray sebelum menambahkan elemen baru: [20, 21, 3, 4, 5, 88, 12]

Kesimpulan

Mengetahui cara menambahkan elemen ke array membantu pengembang memperbarui kode lama dengan cepat tanpa mengorbankan fungsionalitas dan keterbacaannya… Atau hanya untuk lulus wawancara. Karena ada berbagai cara untuk menambahkan elemen ke array Java, silakan pilih metode yang Anda sukai.

Lebih banyak bacaan:

Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION