Pambuka

Saklawasé saben program kudu nyimpen sawetara set data. Bisa uga senar lan angka, obyek, lan liya-liyane. Array minangka solusi panyimpenan sing paling apik. Nanging larik duwe watesan tartamtu. Contone, ukuran tetep, unsur ora bisa dibusak, lan sampeyan ora bisa masang unsur ing tengah. Koleksi digawe kanggo ngatasi watesan kasebut lan liyane. Kabeh jinis koleksi (lan ana akeh, kaya sing bakal kita deleng ing wulangan iki) duwe kemampuan kanggo ngowahi ukuran kanthi dinamis. Sawetara jinis koleksi bisa nyimpen unsur sing diurutake lan kanthi otomatis nglebokake unsur-unsur anyar nalika ditambahake.

Ing wulangan iki, kita bakal kenal karo hirarki kelas koleksi dhasar ing Java Collections Framework . Ana uga macem-macem perpustakaan alternatif sing nambah kapabilitas Java Collections Framework standar . Sing paling populer yaiku Guava (Google Collections Library).

* Ora kabeh antarmuka lan kelas dituduhake ing diagram. Sawetara diilangi supaya luwih gampang dingerteni.

Antarmuka dhasar

Diagram nuduhake yen ana rong antarmuka dhasar sing dileksanakake kanggo mbentuk liyane saka kelas lan antarmuka.

Ayo goleki antarmuka iki:

  1. Koleksi - Koleksi biasa sing ngemot sakumpulan unsur (obyek). Koleksi iki nduweni cara dhasar kanggo nggarap unsur: nglebokake ( nambah , nambahKabeh ), mbusak ( nyopot , mbusakKabeh , mbusak ), telusuran ( ngandhut , ngemotKabeh ), priksa manawa koleksi kosong ( isEmpty ) lan entuk ukuran ( ukuran ).

  2. Peta - Koleksi sing disusun minangka pasangan kunci-nilai. Kajaba iku, saben tombol ing Peta unik: ora ana rong tombol sing nduweni nilai sing padha. Koleksi iki kadhangkala disebut kamus . Peta minangka antarmuka sing kapisah. Iku ora ngleksanakake antarmuka Koleksi , nanging bagéan saka Java Collections Framework .

Cara sing migunani kanggo nggarap unsur ing Peta :

  • insert ( put , putAll )

  • entuk ( entuk , keySet , nilai , entrySet )

  • mbusak ( mbusak , mbusak )

  • telusuran ( containsKey , containsValue )

  • priksa manawa koleksi kosong ( isEmpty )

  • entuk ukuran ( ukuran )

Saiki ayo ngomong luwih akeh babagan saben wong.

Antarmuka koleksi

Antarmuka Koleksi ngluwihi antarmuka Iterable , sing nduweni cara siji: iterator () . Kanggo kita, iki tegese koleksi apa wae sing duwe warisan Iterable bakal bisa ngasilake iterator.

Iterator minangka obyek khusus sing bisa digunakake kanggo ngakses unsur koleksi apa wae, preduli saka implementasine tartamtu .

Tokoh nuduhake yen 3 antarmuka oleh warisan antarmuka Koleksi : List , Antrian lan Set . Saiki kita bakal nliti saben wong kanthi ringkes.

Dhaptar minangka koleksi dhawuh sing ngidini duplikat nilai. Fitur tartamtu saka List yaiku unsur-unsur kasebut diwenehi nomer lan bisa diakses kanthi nomer (indeks).

A Queue nyimpen unsur ing urutan padha ditambahake menyang antrian.

Boten kados dhaptar, Set nggantosi koleksi unordered sing ora ngidini unsur bola. Antarmuka Set cocog karo konsep set matematika .

Implementasi antarmuka Peta

Kita bisa ndeleng manawa antarmuka Peta nggambarake pemetaan antarane tombol lan nilai unik.


interface Map<K, V>

ngendi K minangka jinis tombol lan V minangka jinis nilai sing disimpen.

Nggunakake kunci, kita bisa ngekstrak data saka Peta . Kanggo nambah unsur menyang Peta , kita kudu nemtokake kunci lan nilai.

Ayo ndeleng sawetara implementasi Peta :

  1. HashMap minangka implementasi Peta sing adhedhasar tabel hash. Bisa nyimpen kunci lan nilai apa wae, kalebu null . Urutan unsur ora dijamin.

  2. LinkedHashMap minangka struktur data sing nyimpen data minangka dhaptar unsur sing disambung. Unsur kasebut katon ing dhaptar kanthi urutan sing ditambahake.

  3. TreeMap ngleksanakake antarmuka SortedMap (liwat antarmuka NavigableMap ). Unsur ing struktur iki disimpen ing urutan sing diurutake (nalika unsur anyar ditambahake, koleksi kasebut diurutake kanthi otomatis). TreeMap apik kanggo nyimpen jumlah data sing diurutake kanthi cepet.

Koleksi lawas:

Jawa nduweni koleksi lungse saka versi sadurunge (kanggo njaga kompatibilitas mundur). Koleksi lawas iki ora kudu digunakake ing kode anyar:

  • Enumerasi - analog karo antarmuka Iterator ;

  • Vektor - dhaptar unsur sing diurutake lan analog karo kelas ArrayList ;

  • Stack — implementasine saka struktur data tumpukan, sing nyimpen lan ngapusi unsur kaya carane sampeyan bakal sesambungan karo tumpukan buku. Ana cara kanggo nambah unsur menyang tumpukan ( push ) lan mbusak ( pop );

  • Kamus — analog karo antarmuka Peta , nanging minangka kelas abstrak;

  • Hashtable — padha karo HashMap .

Sampeyan bisa maca liyane babagan Framework Koleksi ing artikel iki .