"Halo, Amigo!"

"Halo, Ellie!"

"Dina iki kita bakal mbungkus sirah ing struktur koleksi sapisan lan kanggo kabeh."

"Aku wis ngenteni suwe iki."

"Sampeyan wis ngerti apa koleksi, lan sampeyan ngerti carane bisa karo wong-wong mau. Iku wektu kanggo ngatur kawruh menyang sistem sing ketat. Banjur akeh pitakonan 'kenapa' lan 'kepiye' bakal ilang, lan akeh sing bakal dadi ketok."

" Antarmuka koleksi . Struktur warisan saka antarmuka koleksi katon kaya iki:"

Antarmuka koleksi - 1

Wigati rong perkara.

Pisanan, kabeh sing sampeyan deleng ing kene minangka antarmuka.

Kapindho, panah tegese "warisan".

"Ing tembung liyane, Dhaptar, Set, lan Antrian warisan Koleksi, nanging Map ora?"

"Yep. Kelas abstrak banjur marisi antarmuka iki lan, ing siji, implementasine sing sampeyan ngerti babagan warisan kelas abstrak kasebut:  ArrayList, Hashtable, TreeSet,… "

"Bener sampeyan."

"Saiki ayo ndeleng apa cara antarmuka iki kanggo:"

Metode antarmuka Iterable<E> ::

Metode Katrangan
Iterator<T> iterator(); Ngasilake obyek iterator.

"Sing kaya ora cukup."

"Inggih, punika pira cacahipun. Iku kabeh kanggo iterator. Kita ora bakal nutupi wong-wong mau sapunika, nanging kita bakal nutupi kanthi rinci."

Metode Koleksi <E>: antarmuka:

Metode Katrangan
boolean add(E e); Nambahake unsur menyang koleksi
boolean addAll(Collection<? extends E> c); Nambahake unsur ing koleksi
void clear(); Mbusak kabeh unsur saka koleksi
boolean contains(Object o); Priksa manawa koleksi kasebut ngemot unsur kasebut.
boolean containsAll(Collection<?> c); Priksa manawa koleksi kasebut ngemot unsur.
boolean equals(Object o); Priksa manawa koleksi padha karo
int hashCode(); Ngasilake kode hash
boolean isEmpty(); Priksa manawa koleksi kasebut kosong.
Iterator<E> iterator(); Ngasilake obyek iterator
boolean remove(Object o); Mbusak unsur saka koleksi
boolean removeAll(Collection<?> c); Mbusak unsur saka koleksi
boolean retainAll(Collection<?> c); Mbusak kabeh unsur sing ora ana ing c
int size(); Ngasilake ukuran koleksi
Object[] toArray(); Ngonversi koleksi menyang larik
<T> T[] toArray(T[] a); Ngonversi koleksi menyang larik

"Aku wis ngalangi kabeh kene. Aku wis nggunakake setengah saka cara iki, lan aku wis ketemu setengah liyane."

"Inggih, ayo nerusake."

Metode List  <E>: antarmuka:

Metode Katrangan
void add(int index, E element); Nambahake unsur ing tengah koleksi
boolean addAll(int index, Collection<? extends E> c); Nambahake unsur ing koleksi
E get(int index); Ngasilake unsur kanthi indeks
int indexOf(Object o); Ngasilake indeks (nomer) unsur
int lastIndexOf(Object o); Ngasilake indeks saka unsur pungkasan.
ListIterator<E> listIterator(); Ngasilake iterator kanggo dhaptar
ListIterator<E> listIterator(int index); Ngasilake iterator kanggo dhaptar
E remove(int index); Mbusak unsur kanthi indeks
E set(int index, E element); Nyetel nilai anyar kanthi indeks
List<E> subList(int fromIndex, int toIndex); Ngasilake subkoleksi

"Ora ana sing anyar banget ing kene. Aku wis ngerti meh kabeh babagan koleksi, sing aku ora bisa seneng.

"Inggih, aku bisa nemokake soko sing bakal kaget sampeyan. Nanging ayo terus mriksa antarmuka:"

Metode Set <E>: antarmuka:

Metode Katrangan
Ora ana cara

"Antarmuka Set ora duwe cara anyar - mung sing diwarisake."

"Ya, aku weruh yen antarmuka Interable uga ora ana apa-apa.

"Ing sisih liyane, cara sing luwih sithik tegese kurang ngeling-eling!"

"Optimisme sing nguatake urip sampeyan nggawe aku seneng."

"Antarmuka Set dipun warisaken dening rong antarmuka karo cara: SortedSet lan NavigableSet. Nanging aku ora bakal pindhah liwat, utawa kita ora bakal rampung."

"Nanging, aku menehi gambaran umum babagan kelas lan antarmuka sing nggambarake koleksi ing Jawa."

"Nggawa iku."

"Banjur terus:"

Antarmuka koleksi - 2

"Wah, gedhe banget!"

"Inggih, iku ora sing amba. Uga, elinga yen kelas abstrak tanggung opsional. Nanging iku apik kanggo ngelingi kang kelas ngleksanakake antarmuka kang. Sing bisa teka ing Handy cukup kerep."

"Oh, aku uga pengin ngelingi sawetara koleksi sing dianggep lungse."

"Iki sing endi?"

"Aku ngomong babagan kelas Vector, Stack, Dictionary, lan Hashtable. Iki minangka versi sing disinkronake (aman benang) saka koleksi biasa."

"Nanging Jawa wis nambah perpustakaan concurrency khusus karo akeh koleksi sing ora mung bisa diakses saka thread liyane, nanging uga duwe implementasine luwih efisien.  ConcurrentHashMap luwih efisien tinimbang Hashtable ."

"Sampeyan bisa nggunakake koleksi Vector, Stack, Dictionary, lan Hashtable, nanging ora dianjurake."

"Get, aku bakal tetep ing pikiran."

"Matur nuwun, Ellie!"