1. Menambah elemen pada tengah (atau pada permulaan) senarai

Jika kita ingin memasukkan elemen di tengah-tengah senarai, inilah yang berlaku di dalam senarai.

Katakan kita mempunyai senarai 11 elemen:

Menambah elemen pada tengah (atau pada permulaan) senarai

Kami ingin memasukkan nombor 10,000 ke dalam senarai di indeks 5. Untuk melakukan ini, kami hanya perlu melaksanakan:

list.add(5, 10000);

Di mana listpembolehubah ArrayList. Kaedah ini add(int index, type value)menambah nilai 10000 pada kedudukan 5 dalam senarai. Inilah yang berlaku dalam add()kaedah:

Langkah 1: Semua elemen tatasusunan, bermula dari kedudukan ke-5, akan dialihkan (disalin) oleh 1 elemen ke arah penghujung tatasusunan:

Menambah elemen di tengah (atau pada permulaan) senarai 1

Ambil perhatian bahawa unsur-unsur dalam sel ke-5 dan ke-6 tatasusunan kini adalah sama.

Langkah 2: Tulis nilai 10,000 ke dalam sel ke-5:

Menambah elemen di tengah (atau pada permulaan) senarai 2

Kini senarai mengandungi semua elemen tatasusunan, dan sel kelima mengandungi nombor 10,000. Hanya apa yang kita mahu.



2. Mengalih keluar elemen daripada senarai

Mengalih keluar elemen daripada senarai adalah serupa dengan memasukkannya, tetapi prosesnya diterbalikkan.

Mari kita keluarkan elemen ke-3 daripada senarai. Untuk melakukan ini, kita perlu melaksanakan:

list.remove(3);

Inilah yang berlaku dalam kaedah remove():

Langkah 1: Elemen tatasusunan, bermula dari kedudukan ke-4, akan dianjakkan (disalin) oleh 1 elemen ke arah permulaan tatasusunan:

Mengalih keluar elemen daripada senarai

Langkah 2: Nilai pembolehubah sizeakan dikurangkan sebanyak 1.

Mengalih keluar elemen daripada senarai 2

Sila ambil perhatian bahawa terdapat beberapa nilai berwarna kelabu di hujung tatasusunan. Secara teknikal, ini adalah sampah. Ia perlu dibuang agar tidak mengganggu kutipan sampah .

Langkah 3: Membersihkan sampah

Mengalih keluar elemen daripada senarai 3



3. Contoh praktikal bekerja dengan senarai di Jawa

Mari tulis beberapa contoh bekerja dengan senarai:

Kami akan menyenaraikan semua nombor genap dalam julat dari 1 hingga 20:

Kod Nota
ArrayList<Integer> list = new ArrayList<Integer>();

for (int i = 1; i <= 20; i++)
   if (i%2 == 0)
      list.add(i);
Buat objek senarai

Gelung ke atas semua indeks 1ke 20
Jika indeks boleh dibahagikan dengan 2tanpa baki,
tambahkannya ke senarai

Sekarang mari kita paparkan semua elemen senarai pada skrin:

Kod Nota
ArrayList<Integer> list = new ArrayList<Integer>();

for (int i = 1; i <= 20; i++)
   if (i%2 == 0)
      list.add(i);

for (int i = 0; i < list.size(); i++)
   System.out.println(list.get(i));
Cipta objek senarai
Gelung pada semua indeks 1ke 20

Jika nombor boleh dibahagi dengan 2tanpa baki,
tambahkannya pada senarai

Gelung daripada sifar kepada saiz senarai
Paparkan setiap elemen pada skrin

Mengalih keluar unsur:

Sekarang mari kita keluarkan semua elemen yang boleh dibahagikan dengan 4. Ambil perhatian bahawa selepas mengalih keluar elemen daripada senarai, kedudukan elemen yang tinggal serta-merta berubah.

Kod Nota
ArrayList<Integer> list = new ArrayList<Integer>();

for (int i = 1; i <= 20; i++)
   if (i%2 == 0)
      list.add(i);

for (int i = 0; i < list.size(); i++)
   if (list.get(i)%4 == 0)
   {
      list.remove(i);
      i--;
   }
Cipta objek senarai

Gelung ke atas semua indeks 1ke 20
Jika indeks boleh dibahagi dengan 2tanpa baki,
tambahkannya pada senarai

Gelung dari sifar kepada saiz senarai
Jika elemen senarai boleh dibahagi dengan 4tanpa baki:

a) alih keluar elemen
b) kurangkan ipembilang supaya kita mendapat indeks yang sama pada lelaran gelung seterusnya

Katakan anda perlu mengalih keluar 3 elemen terakhir daripada senarai.

Begini cara untuk melakukannya dengan salah:

Kod Nota
ArrayList<Integer> list = new ArrayList<Integer>();

for (int i = 1; i <= 20; i++)
   if (i%2 == 0)
      list.add(i);

int n = list.size();
list.remove(n - 3);
list.remove(n - 2);
list.remove(n - 1);
Cipta objek senarai

Senarai mempunyai 10 elemen: 2, 4, 6, ... 20



n = 10
n - 3 = 7(terdapat 9 elemen yang tinggal dalam senarai)
n - 2 = 8(terdapat 8 elemen yang tinggal dalam senarai)
n - 1 = 9(terdapat 7 elemen yang tinggal dalam senarai)

Selepas mengalih keluar elemen ke-7 dan ke-8, hanya 8 elemen akan kekal dalam senarai. Ini bermakna ia tidak mungkin untuk memadamkan elemen ke-9 — ralat akan berlaku dalam atur cara.

Inilah cara yang betul untuk mengalih keluar elemen:

Pilihan 1 Pilihan 2
int n = list.size();
list.remove(n - 3);
list.remove(n - 3);
list.remove(n - 3);
int n = list.size();
list.remove(n - 1);
list.remove(n - 2);
list.remove(n - 3);

Elemen perlu dialih keluar sama ada dari hujung atau dari lokasi lain yang konsisten, kerana elemen akan dialihkan oleh satu selepas setiap operasi penyingkiran.