Mengeluarkan Elemen Pertama Array

1. Gambaran keseluruhan

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

Di samping itu, kita juga akan melihat bagaimana menggunakan struktur data dari Java Collections Framework menjadikan semuanya lebih mudah.

2. Menggunakan Arrays.copyOfRange ()

Pertama sekali, membuang elemen array tidak dapat dilakukan secara teknikal di Java . Untuk memetik dokumen rasmi:

"Array adalah objek kontena yang menyimpan sejumlah nilai tetap dari satu jenis. Panjang array ditentukan semasa tatasusunan dibuat. Selepas penciptaan, panjangnya tetap. "

Ini bermaksud sepanjang kita bekerja dengan array secara langsung, yang dapat kita lakukan adalah membuat susunan baru dengan ukuran lebih kecil, yang kemudian tidak mengandung elemen pertama .

Nasib baik JDK menyediakan fungsi pembantu statik yang mudah kita gunakan, yang disebut Arrays.copyOfRange () :

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

Perhatikan bahawa operasi ini mempunyai kos O (n) kerana akan membuat array baru setiap masa.

Sudah tentu, ini adalah cara yang tidak praktikal untuk mengeluarkan elemen dari array dan jika anda melakukan operasi seperti itu secara berkala, mungkin lebih masuk akal untuk menggunakan Java Collections Framework.

3. Menggunakan Pelaksanaan Senarai

Dalam usaha untuk mengekalkan kira-kira semantik sama struktur data (urutan lebih awal daripada unsur-unsur yang boleh diakses dengan indeks), ia masuk akal untuk menggunakan pelaksanaan Senarai antara muka.

Dua pelaksanaan yang paling biasa adalah ArrayList dan LinkedList .

Katakan kita mempunyai Senarai berikut :

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

Oleh kerana kedua-dua kelas menerapkan antara muka yang sama, kod contoh untuk membuang elemen pertama kelihatan sama:

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

Dalam kes ArrayList , kos membuang adalah O (n) , sementara LinkedList mempunyai kos O (1) .

Sekarang, ini tidak bermaksud kita harus menggunakan LinkedList di mana sahaja sebagai lalai kerana kos untuk mendapatkan objek adalah sebaliknya. Kos panggilan get (i) adalah O (1) untuk ArrayList dan O (n) dalam kes LinkedList .

4. Kesimpulan

Kami telah melihat cara membuang elemen pertama array di Java. Sebagai tambahan, kami telah melihat bagaimana mencapai hasil yang sama menggunakan Java Collections Framework.

Anda boleh mendapatkan contoh kod di GitHub.