Menghapus Elemen Pertama dari sebuah Array

1. Ikhtisar

Dalam tutorial ini, kita akan melihat cara menghapus elemen pertama dari sebuah array .

Selain itu, kita juga akan melihat bagaimana menggunakan struktur data dari Java Collections Framework membuat segalanya lebih mudah.

2. Menggunakan Arrays.copyOfRange ()

Pertama-tama, menghapus elemen array secara teknis tidak mungkin dilakukan di Java . Mengutip dokumen resmi:

“Array adalah objek kontainer yang menyimpan sejumlah nilai tetap dari satu tipe. Panjang larik ditentukan saat larik dibuat. Setelah pembuatan, panjangnya ditetapkan. "

Ini berarti selama kita mengerjakan sebuah array secara langsung, yang bisa kita lakukan hanyalah membuat array baru dengan ukuran lebih kecil, yang kemudian tidak berisi elemen pertama .

Untungnya JDK menyediakan fungsi pembantu statis yang nyaman yang bisa kita gunakan, yang disebut Arrays.copyOfRange () :

String[] stringArray = {"foo", "bar", "baz"}; String[] modifiedArray = Arrays.copyOfRange(stringArray, 1, stringArray.length);

Perhatikan bahwa operasi ini memiliki biaya O (n) karena akan membuat larik baru setiap saat.

Tentu saja, ini adalah cara yang tidak praktis untuk menghapus elemen dari array dan jika Anda melakukan operasi seperti itu secara teratur, mungkin lebih bijaksana untuk menggunakan Java Collections Framework sebagai gantinya.

3. Menggunakan Implementasi Daftar

Untuk menjaga semantik yang kurang lebih sama dari struktur data (urutan elemen yang dapat diakses oleh indeks), masuk akal untuk menggunakan implementasi antarmuka Daftar .

Dua implementasi paling umum adalah ArrayList dan LinkedList .

Misalkan kita memiliki Daftar berikut :

List arrayList = new ArrayList(); // populate the ArrayList List linkedList = new LinkedList(); // populate the LinkedList

Karena kedua kelas menerapkan antarmuka yang sama, kode contoh untuk menghapus elemen pertama terlihat sama:

arrayList.remove(0); linkedList.remove(0);

Dalam kasus ArrayList , biaya penghapusan adalah O (n) , sedangkan LinkedList memiliki biaya O (1) .

Sekarang, ini tidak berarti kita harus menggunakan LinkedList di mana-mana sebagai default karena biaya untuk mengambil objek adalah sebaliknya. Biaya panggilan get (i) adalah O (1) dalam kasus ArrayList dan O (n) dalam kasus LinkedList .

4. Kesimpulan

Kami telah melihat cara menghapus elemen pertama dari sebuah array di Java. Selain itu, kami telah melihat bagaimana mencapai hasil yang sama menggunakan Java Collections Framework.

Anda dapat menemukan kode contoh di GitHub.