1. Tinjauan Kerangka Koleksi Java
Java SE mencakup Java Collection Framework (JCF) yang terdiri dari satu set kelas dan antarmuka. Fungsi utamanya adalah mengatur data yang disimpan dalam struktur tertentu dan mengakses data ini dengan cara tertentu. Tujuannya adalah untuk memberikan kerangka kerja umum untuk memproses koleksi objek dan mengurangi jumlah pengkodean yang digunakan programmer saat memproses koleksi objek yang berbeda.
Beberapa perbedaan dalam kelas koleksi, di samping apakah mereka mendukung operasi elemen duplikat, termasuk apakah elemen tersebut dalam rangka dan apakah elemen nol diizinkan untuk ditambahkan. Menurut tiga perbedaan dalam kerangka kerja koleksi Java ini, metode penyimpanan objek dibagi menjadi tiga jenis, yaitu:
Untuk mendukung operasi pengurutan dan akses traversal objek, beberapa antarmuka disediakan dalam Kerangka Koleksi Java:
2. Antarmuka Pengumpulan dan Antarmuka Iterator
Beberapa metode dasar yang dibagikan oleh objek koleksi didefinisikan dalam antarmuka koleksi.
| metode | menggambarkan |
| ukuran int () | Mengembalikan jumlah elemen yang terkandung dalam koleksi saat ini |
| isempyt () | Tentukan apakah set berisi elemen |
| Boolean berisi (objek o) | Tentukan apakah elemen yang ditentukan terkandung dalam koleksi |
| tambahkan (objek o) | Tambahkan elemen ke koleksi |
| hapus (objek o) | Hapus elemen dari koleksi |
| Iterator iterator () | Mengembalikan traverser untuk mengakses berbagai elemen dalam koleksi |
Antarmuka Iterator adalah antarmuka yang digunakan untuk melintasi koleksi.
| metode | menggambarkan |
| hasnext () | Jika ada lebih banyak elemen dalam koleksi, metode ini mengembalikan true |
| Berikutnya() | Kembalikan elemen berikutnya dalam koleksi |
| menghapus() | Hapus elemen terakhir yang dikembalikan oleh iterator |
1. Antarmuka Daftar
Antarmuka daftar diwarisi dari antarmuka koleksi, dan memiliki karakteristik berikut:
Kelas implementasi yang paling umum digunakan untuk antarmuka daftar adalah kelas ArrayList dan kelas LinkedList.
1) .Arraylist
Contoh program:
paket lei; impor java.util.arraylist; impor java.util.list; tes kelas publik {public static void main (string [] args) {daftar daftar = arraylist baru <> (); list.add (1); list.add ("Zhangsan"); list.add (false); list.add ('a'); list.add (0, "lisi"); list.add (1); daftar.remove (1); daftar.Remove (2); list.set (0, "wangwu"); untuk (int i = 0; i <list.size (); i ++) {System.out.println (list.get (i)); }}}Metode Equals () yang ditentukan oleh kelas objek akan mengembalikan true hanya ketika objek yang diteruskan ke metode dan objek yang memanggil metode adalah objek yang sama. Dua objek dengan keadaan yang sama dapat dianggap sebagai objek yang sama dengan menimpa metode Equals ().
2) .linkedlist
| metode | menggambarkan |
| batal addFirst | Tambahkan objek di awal daftar yang ditautkan |
| membatalkan addlast | Tambahkan objek di akhir daftar yang ditautkan |
| getFirst () | Kembalikan elemen pertama dalam daftar tertaut |
| getLast () | Kembalikan elemen terakhir dalam daftar tertaut |
| hapusfirst () | Hapus elemen pertama dalam daftar tertaut |
| Removelast () | Hapus elemen terakhir dalam daftar tertaut |
Contoh program:
paket lei; impor java.util.linkedlist; impor java.util.list; test kelas publik2 {public static void main (string [] args) {linkedList l = new LinkedList <> (); L.Add ("Zhangsan"); l.add ("lisi"); l.addfirst (1); l.addlast (4); System.out.println (l.getFirst ()); System.out.println (l.getLast ()); l.removefirst (); l.removelast (); untuk (int i = 0; i <l.size (); i ++) {System.out.println (l.get (i)); }}}Pilihan LinkedList vs. ArrayList
Jika daftar perlu diakses dengan cepat tetapi tidak sering memasukkan dan menghapus elemen, akan lebih baik untuk memilih ArrayList; Jika daftar perlu sering dimasukkan dan dihapus, maka Anda harus memilih LinkedList.
2. Antarmuka
Antarmuka yang ditetapkan mewarisi dari antarmuka pengumpulan dan juga mewarisi semua metode antarmuka pengumpulan. Antarmuka yang ditetapkan memiliki karakteristik berikut:
Yang paling umum digunakan untuk mengimplementasikan antarmuka yang ditetapkan adalah kelas hashset dan kelas Treeset.
1) .hashset
Kelas hashset adalah implementasi antarmuka yang ditetapkan berdasarkan algoritma hash. Ini memiliki karakteristik berikut:
Jika kelas yang kami tulis mendefinisikan ulang metode yang sama, maka kelas ini juga harus mendefinisikan kembali metode hashcode (), dan memastikan bahwa ketika hasil dari dua objek dibandingkan dengan metode yang sama adalah benar, nilai pengembalian metode hashcode () dari kedua objek tersebut sama.
Contoh program:
paket lei; impor java.util.hashset; impor java.util.set; Test kelas publik4 {public static void main (string [] args) {set <string> set = new HashSet <string> (); set.add ("Zhangsan"); set.add ("lisi"); untuk (string s: set) {System.out.println (s); }}}2) .treeset
Kelas TreeSet tidak hanya mengimplementasikan antarmuka set kelas, tetapi juga mengimplementasikan antarmuka sortedset, sehingga dapat memastikan bahwa objek dalam koleksi diurutkan dalam urutan tertentu. Ketika suatu objek ditambahkan ke koleksi TreeSet, itu dimasukkan ke dalam urutan objek yang dipesan, tetapi jenis ini tidak diurutkan dalam urutan di mana objek ditambahkan, tetapi diurutkan sesuai dengan algoritma tertentu.
Treeeset mengurutkan elemen dalam urutan alami elemen, atau mengurutkannya sesuai dengan pembanding yang disediakan ketika set dibuat. Treeeset mendukung dua metode penyortiran: penyortiran alami dan penyortiran khusus.
3. Antarmuka
Antarmuka peta (peta) adalah antarmuka penting lainnya dalam kerangka kerja koleksi Java yang berbeda dari antarmuka koleksi. Ini sesuai dengan kumpulan hubungan yang sesuai dari kunci ke nilai. Ada dua kelompok objek dalam wadah objek peta, satu kelompok objek digunakan untuk menyimpan kunci di peta, dan grup lainnya digunakan untuk menyimpan nilainya. Kunci dan nilai dapat meningkatkan data jenis referensi apa pun. Kunci tidak dapat diulang, tetapi nilainya dapat diulang.
1) .Hashmap
HashMap adalah implementasi antarmuka peta berdasarkan algoritma hash. Hashmap menyimpan kunci di tabel hash untuk pemeliharaan, dan kunci -kunci itu unik. Namun, hashmap tidak menjamin bahwa kunci diatur dalam urutan tertentu, terutama bahwa pesanan tidak berubah secara permanen.
Kelas HashMap mengimplementasikan antarmuka peta, sehingga memiliki semua metode antarmuka peta.
paket hari1228; impor java.util.*; kelas publik hashmapdemo {public static void main (string [] args) {// Buat peta hashmap baru <string, string> peta = new HashMap <string, string> (); peta.put ("a1", "xiao"); peta.put ("b2", "xiaol"); peta.put ("a4", "xiaosd"); peta.put ("b1", "12a"); peta.put ("a3", "1"); // Gunakan iterator untuk melintasi kunci dan nilai system.out.println ("sebelum nilai peta adalah:"); Atur <string> keys = map.keyset (); untuk (iterator <string> i = keys.iterator (); i.hasnext ();) {string key = i.next (); Nilai string = map.get (key); System.out.println (key + "=" + value); } // hapus nilai dengan tombol "a4" system.out.println ("/ndelete elemen dengan nilai kunci a4"); peta.remove ("a4"); // // Gunakan iterator untuk melintasi tombol dan nilai system.out.println ("/n nilai peta setelah:"); keys = map.keyset (); untuk (iterator <string> i = keys.iterator (); i.hasnext ();) {string key = i.next (); Nilai string = map.get (key); System.out.println (key + "=" + value); }}}2) .teemap
Kelas TreeMap adalah implementasi antarmuka peta berdasarkan algoritma pohon merah dan hitam. Metode penyimpanan kunci di TreeMap mirip dengan Treeset. Ini menyimpan kunci di pohon, dan urutan kunci diatur dalam urutan alami atau pesanan khusus.
Contoh program:
paket hari1228; impor java.util.*; kelas publik treemapDemo {public static void main (string [] args) {// Buat peta treemap baru <integer, string> peta = treemap baru <integer, string> (); peta.put (1, "satu"); peta.put (2, "dua"); peta.put (3, "tiga"); peta.put (4, "empat"); peta.put (5, "lima"); // Gunakan iterator untuk menampilkan tombol dan nilai System.out.println ("Nilai peta sebelumnya adalah:"); Atur <integer> keys = map.keyset (); untuk (tombol objek: tombol) {string value = map.get (key); System.out.println (key+"="+value); } // hapus nilai kunci 3 system.out.println ("/ndelete elemen dengan nilai kunci 3"); peta.remove (3); // Gunakan iterator untuk menampilkan kunci dan nilai system.out.println ("/n Nilai setelah peta adalah:"); untuk (tombol objek: tombol) {string value = map.get (key); System.out.println (key+"="+value); }}}Di atas adalah semua konten artikel ini. Saya berharap konten artikel ini akan membantu untuk belajar atau bekerja semua orang. Saya juga berharap untuk mendukung wulin.com lebih lanjut!