Latest web development tutorials

Java Collections Framework

Jauh sebelum di Jawa 2, Java menyediakan kategori ad hoc. Sebagai contoh: kelas Dictionary, Vector, Stack, dan Properti yang digunakan untuk menyimpan dan memanipulasi kelompok benda.

Meskipun kelas ini sangat berguna, tetapi mereka tidak memiliki pusat, tema pemersatu. Untuk alasan ini, menggunakan cara yang kelas Vector dan menggunakan kelas Properti memiliki cara yang sangat berbeda.

Koleksi Kerangka dirancang untuk memenuhi tujuan berikut.

  • Kerangka kerja ini harus kinerja tinggi. Set dasar (array dinamis, terkait daftar, pohon, tabel hash) pelaksanaan juga harus efisien.
  • kerangka memungkinkan untuk berbagai jenis koleksi, dengan cara yang sama dengan tingkat tinggi interoperabilitas.
  • Penyuluhan dan adaptasi koleksi harus sederhana.

Untuk tujuan ini, seluruh kerangka koleksi dirancang di sekitar satu set antarmuka standar. Anda dapat menggunakan antarmuka standar untuk mencapai, seperti: LinkedList, HashSet, TreeSet dan sejenisnya, selain Anda juga dapat menerapkan koleksi Anda sendiri melalui antarmuka ini.

Koleksi kerangka adalah arsitektur unified digunakan untuk mewakili dan memanipulasi koleksi. Semua kerangka koleksi berisi berikut:

  • Interface: Ini adalah tipe data abstrak merupakan koleksi. Antarmuka memungkinkan manipulasi independen dari rincian koleksi wakilnya. Dalam bahasa berorientasi objek, interface umumnya membentuk sebuah hirarki.
  • Pelaksanaan (kelas): adalah realisasi dari kumpulan interface. Pada dasarnya, mereka adalah struktur data dapat digunakan kembali.
  • Algoritma: beberapa objek komputasi yang berguna yang mengimplementasikan interface dalam metode pengumpulan melakukan, misalnya: mencari dan memilah. Algoritma ini disebut multi-negara, itu karena metode yang sama dapat memiliki implementasi yang berbeda dari interface yang mirip.

Selain koleksi, kerangka kerja ini juga mendefinisikan beberapa Peta interface dan kelas. Peta disimpan dalam pasangan kunci / nilai. Meskipun Peta tidak koleksi, tetapi mereka terintegrasi dalam koleksi.


Antarmuka koleksi

kerangka koleksi mendefinisikan sejumlah interface. Bagian ini memberikan gambaran tentang setiap antarmuka:

Tidak. antarmuka Keterangan
1 antarmuka koleksi memungkinkan Anda untuk menggunakan sekelompok objek, adalah hirarki akar koleksi antarmuka.
2 elemen daftar antarmuka diwarisi dari Koleksi dan contoh daftar menyimpan koleksi memerintahkan.
3 set
Diwarisi dari Koleksi, itu adalah koleksi yang tidak mengandung elemen duplikat.
4 SortedSet
Terletak di sebuah suksesi tertib untuk menyelamatkan set.
5 peta
Satu-satunya peta kunci untuk nilai-nilai.
6 Map.Entry
Unsur deskripsi (key / nilai pasangan) dalam Peta. Peta adalah kelas batin.
7 SortedMap
Diwarisi dari Peta, sehingga Key diadakan dalam urutan.
8 pencacahan
Ini adalah definisi tradisional antarmuka dan metode yang Anda dapat menghitung (setelah memperoleh) objek dalam elemen koleksi. Tradisi ini telah digantikan oleh iterator interface.

koleksi

Java menyediakan satu set standar kelas mengimplementasikan interface Collection. Beberapa dari mereka adalah kelas khusus yang dapat menggunakannya, sementara yang lain kelas abstrak, menyediakan implementasi parsial dari antarmuka.

kelas koleksi standar dirangkum dalam tabel berikut:

Tidak. kelas Deskripsi
1 AbstractCollection
Untuk mencapai sebagian besar interface koleksi.
2 AbstractList
Warisan dalam AbstractCollection dan mencapai sebagian besar antarmuka Daftar.
3 AbstractSequentialList
Diwarisi dari AbstractList, ia menyediakan akses ke elemen data dalam rantai daripada akses acak.
4 LinkedList
Diwarisi dari AbstractSequentialList, menerapkan linked list.
5 ArrayList
Melalui warisan AbstractList, array dinamis.
6 AbstractSet
Warisan dalam AbstractCollection dan mencapai sebagian besar Set antarmuka.
7 HashSet
Dia mewarisi AbstractSet, dan menggunakan tabel hash.
8 LinkedHashSet
Dengan urutan iterasi diprediksi dan terkait daftar hash table Set antarmuka.
9 TreeSet
Diwarisi dari AbstractSet, menggunakan elemen dari tatanan alam elemen dalam rangka.
10 AbstractMap
Untuk mencapai sebagian besar antarmuka Peta.
11 HashMap
HashMap adalah tabel hash, yang menyimpan isi dari pasangan kunci-nilai (key-value) pemetaan.
HashMap mewarisi AbstractMap, menyadari Peta, Cloneable, java.io.Serializable antarmuka.
12 TreeMap
Dia mewarisi AbstractMap, dan penggunaan pohon.
13 WeakHashMap
Mewarisi kelas AbstractMap, menggunakan tabel hash kunci lemah.
14 LinkedHashMap
Diwarisi dari HashMap, menggunakan unsur-unsur tatanan alam elemen yang akan diurutkan.
15 IdentityHashMap
AbstractMap kelas warisan, menggunakan referensi-kesetaraan ketika membandingkan dokumen.

Pada tutorial sebelumnya kita telah dibahas oleh kelas java.util didefinisikan dalam paket, sebagai berikut:

Tidak. kelas Deskripsi
1 vektor
kelas vektor mengimplementasikan array dinamis. Dan ArrayList dan serupa, tetapi keduanya berbeda.
2 tumpukan
Stack adalah subclass dari Vector, yang menerapkan LIFO tumpukan standar.
3 kamus
kelas kamus adalah kelas abstrak yang digunakan untuk menyimpan pasangan kunci / nilai, mirip dengan class action dan Peta.
4 Hashtable
Hashtable adalah bagian dari java.util asli adalah implementasi konkret Dictionary.
5 properti
Sifat mewarisi dari Hashtable. Merupakan satu set terus-menerus dari sifat. Setiap kunci dan nilai yang sesuai dalam daftar properti adalah string.
6 BitSet
Sebuah kelas BitSet menciptakan jenis khusus dari array untuk menampung nilai bit. BitSet dengan ukuran array akan perlu meningkatkan.

Sebuah kelas BitSet menciptakan jenis khusus dari array untuk menampung nilai bit. BitSet dengan ukuran array akan perlu meningkatkan.


algoritma koleksi

Koleksi Kerangka mendefinisikan beberapa algoritma bisa digunakan untuk koleksi dan pemetaan. algoritma ini adalah metode statis kelas didefinisikan sebagai koleksi.

Ketika mencoba untuk membandingkan jenis tidak kompatibel, beberapa metode dapat membuang ClassCastException. Ketika mencoba untuk memodifikasi satu set non-dimodifikasi, pengecualian UnsupportedOperationException.

Koleksi mendefinisikan tiga variabel statis: EMPTY_SET EMPTY_LIST, EMPTY_MAP dari. variabel ini berubah.

Tidak. algoritma Deskripsi
1 Koleksi Algoritma
Berikut ini adalah daftar semua algoritma.

Cara menggunakan iterator

Biasanya, Anda akan ingin melintasi koleksi elemen. Misalnya, setiap elemen dari koleksi yang ditampilkan.

Lakukan cara termudah adalah dengan menggunakan iterator, itu adalah obyek yang mengimplementasikan antarmuka Iterator atau antarmuka ListIterator.

Iterators, sehingga Anda dapat menghapus elemen untuk mendapatkan atau ditetapkan oleh sirkulasi. ListIterator mewarisi Iterator, yang memungkinkan dua arah melintasi daftar dan memodifikasi elemen.

Semua metode dan antarmuka ListIterator Iterator tersedia tercantum di sini dengan cara misalnya.

Cara menggunakan komparator

TreeSet dan TreeMap semacam memesan sesuai dengan elemen penyimpanan. Namun, ini adalah dengan membandingkan perangkat untuk tepat didefinisikan dalam hal apa urutan.

Interface ini memungkinkan kita dengan cara yang berbeda untuk menyortir set.

Tidak. Perbandingan metode yang dijelaskan
1 Gunakan Java Comparator
antarmuka pembanding menyediakan semua metode yang tercantum di sini dengan cara contoh

ringkasan

Java Collections Framework menyediakan programmer dengan struktur data dikemas dan algoritma untuk memanipulasi mereka.

Sebuah koleksi adalah obyek yang dapat memegang referensi ke obyek lain. Koleksi operasi antarmuka deklarasi untuk setiap jenis koleksi dapat dilakukan.

Koleksi Framework kelas dan interface yang dalam paket java.util.