"Topik keren lainnya."

"Kejutan terus berdatangan! Apakah ini hari ulang tahunku?"

"Hari ini, saya akan memberi tahu Anda tentang generik. Generik adalah tipe yang memiliki parameter. Di Java, kelas kontainer memungkinkan Anda menunjukkan tipe objek dalamnya."

"Saat kami mendeklarasikan variabel generik, kami menunjukkan dua tipe, bukan satu: tipe variabel dan tipe data yang disimpannya."

"ArrayList adalah contoh yang bagus. Saat kita membuat objek ArrayList baru, akan lebih mudah untuk menunjukkan jenis nilai yang akan disimpan di dalam daftar ini."

Kode Penjelasan
ArrayList<String> list = new ArrayList<String>();
Buat variabel ArrayList bernama list.
Tetapkan objek ArrayList untuk itu.
Daftar ini hanya dapat menyimpan objek String .
ArrayList list = new ArrayList();
Buat variabel ArrayList bernama list.
Tetapkan objek ArrayList untuk itu. Daftar ini dapat menyimpan nilai apapun .
ArrayList<Integer> list = new ArrayList<Integer>();
Buat variabel ArrayList bernama list.
Tetapkan objek ArrayList untuk itu.
Daftar ini hanya dapat menyimpan Integerdan intnilai.

"Kedengarannya sangat menarik. Terutama bagian tentang menyimpan nilai jenis apa pun ."

"Sepertinya itu hal yang baik. Pada kenyataannya, jika kita memasukkan string ke dalam ArrayList dalam satu metode dan kemudian mengharapkannya berisi angka dalam metode lain, program akan macet (dihentikan dengan kesalahan)."

"Jadi begitu."

"Untuk saat ini, kami tidak akan membuat kelas kami sendiri dengan parameter tipe. Kami hanya akan menggunakan yang sudah ada."

"Bisakah kelas apa saja menjadi parameter tipe, bahkan yang saya tulis?"

"Ya. Semua tipe kecuali tipe primitif. Semua parameter tipe harus diturunkan dari kelas Object."

" Maksud Anda, saya tidak bisa menulis ArrayList<int>? "

"Memang, Anda tidak bisa. Tapi pengembang Java telah menulis kelas pembungkus untuk masing-masing tipe primitif. Kelas-kelas ini mewarisi Object . Begini tampilannya:"

Tipe primitif Kelas Daftar
int Bilangan bulat ArrayList< Bilangan Bulat >
dobel Dobel ArrayList< Ganda >
boolean Boolean ArrayList< Boolean >
arang Karakter ArrayList< Karakter >
byte Byte ArrayList< Byte >

"Anda dapat dengan mudah menetapkan kelas primitif dan analognya (kelas pembungkus) satu sama lain:"

Contoh
int a = 5;
Integer b = a;
int c = b;

Character c = 'c';  //the literal c is a char
char d = c;
Byte b = (byte) 77;  // The literal 77 is an int
Boolean isOk = true;  // the literal true is a boolean
Double d = 1.0d;  // The literal 1.0d is a double

"Bagus. Saya pikir saya akan mencoba menggunakan ArrayList lebih sering."