"Aku neng kene."

"Halo, Ellie!"

"Dina iki kita bakal ngomong babagan topik sing menarik. Aku arep ngomong babagan kelas ArrayList ."

"Kelas anyar? Keren! Apa bisa?"

"Ayo kula miwiti karo crita mburi. Siji-sijine programer ora seneng babagan susunan yaiku sampeyan ora bisa ngganti ukurane. Apa sing kudu ditindakake yen sampeyan kudu nambah telung unsur menyang array sing mung duwe siji slot gratis? "

"Solusi mung kanggo masalah iki kanggo nggawe susunan amba banget, supaya njamin sampeyan duwe cukup kamar kanggo kabeh unsur. Nanging, iki asring tegese memori boroske. Yen Uploaded biasane ngemot telung unsur, nanging ana malah paling cilik kasempatan yen perlu kanggo nampung 100 unsur, sampeyan kudu nggawe array 100 unsur."

"Dadi, apa sing digawe programer?"

"Dheweke nulis kelas ArrayList , sing nindakake perkara sing padha karo Array, nanging bisa ngganti ukurane."

"Obah sing menarik. Kepiye carane dheweke nindakake?"

"Saben obyek ArrayList nyimpen macem-macem unsur biasa. Nalika maca unsur saka ArrayList , diwaca saka array utama.

Array ArrayList
Nggawe wadhah kanggo unsur
String[] list = new String[10];
ArrayList<String> list = new ArrayList<String>();
Entuk nomer unsur
int n = list.length;
int n = list.size();
Entuk unsur saka array / koleksi
String s = list[3];
String s = list.get(3);
Tulis unsur menyang larik
list[3] = s;
list.set(3, s);

"Dadi, kok ArrayList luwih apik? Sak ngertiku, kode saiki luwih dawa."

"Kaping pisanan, ArrayList ndhukung sawetara operasi tambahan sing programer kudu nindakake kabeh wektu. Array biasa ora ndhukung operasi iki. Contone, masang utawa mbusak unsur saka tengah Uploaded tanpa ninggalake bolongan .

"Kapindho, kemampuan kanggo ngganti ukuran array. Nalika sampeyan kudu nambah siji unsur liyane nanging array internal ora duwe free slot , punika apa mengkono nang ArrayList :

a) Larik liyane digawe sing 50% luwih gedhe saka array utama saiki, ditambah siji unsur.

b) Kabeh unsur saka array lawas disalin menyang anyar.

c) Array anyar disimpen minangka ArrayList array utama obyek. Larik lawas kasebut diumumake sampah (kita mung mandheg nyimpen referensi kasebut).

Array ArrayList
Tambah unsur ing mburi array
Tumindak iki ora didhukung
list.add(s);
Tambah unsur ing tengah array
Tumindak iki ora didhukung
list.add(15, s);
Tambah unsur ing wiwitan array
Tumindak iki ora didhukung
list.add(0, s);
Mbusak unsur saka larik
Kita bisa mbusak unsur karo list[3] = null. Nanging iki bakal ninggalake 'bolongan' ing array.
list.remove(3);

"Kepiye cara kerjane karo ArrayList iki?"

"Satemene, kaya sing kita lakoni karo array biasa. Deleng. Ayo mbandhingake nggarap ArrayList kanggo nggarap array. Upaminipun kita kudu 'maca ing 10 strings lan nampilake ing layar ing urutan mbalikke '."

"Deleng iki:

Kanthi susunan
public static void main(String[] args)
{
Reader r = new InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(r);

// Read strings from the keyboard
String[] list = new String[10];
for (int i = 0; i < list.length; i++)
{
  String s = reader.readLine();
  list[i] = s;
}

// Display the contents of the array
for (int i = 0; i < list.length; i++)
{
  int j = list.length - i - 1;
  System.out.println( list[j] );
}
}
Kanthi ArrayList
public static void main(String[] args)
{
Reader r = new InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(r);

// Read strings from the keyboard
ArrayList&ltString> list = new ArrayList&ltString>();
for (int i = 0; i < 10; i++)
{
  String s = reader.readLine();
  list.add(s);
}

// Display the contents of the collection
for (int i = 0; i < list.size(); i++)
{
  int j = list.size() - i - 1;
  System.out.println( list.get(j) );
}
}

Aku wis nggunakake warna sing padha kanggo nyorot tumindak sing padha ing saben kolom."

"Ing siji, kabeh beda. Ing sisih liyane, isih padha."

"Tengen. Kajaba iku kita ora nggunakake kurung kothak nalika nggarap ArrayList . Nanging, kita nggunakake get , nyetel lan nambah cara."

"Ya, aku ngumpulake akeh. Nanging, katon padha banget."