Apakah Koleksi di Jawa?
Koleksi dalam java diwakili sebagai bekas yang mengumpulkan semua elemen ke dalam satu unit. Contohnya , folder mel (kumpulan e-mel), direktori telefon (pemetaan nama kepada nombor telefon).Apakah Rangka Kerja?
Rangka kerja ialah asas atau reka letak asas di mana anda mula bekerja dengan menggunakan kelas dan antara muka berbeza yang disediakan. Sebagai contoh , Laravel ialah salah satu rangka kerja PHP paling terkenal yang menyediakan rangka asas untuk aplikasi anda.Apakah Rangka Kerja Koleksi dalam Java?
Semua objek dikumpulkan ke dalam satu objek bersama dengan seni bina yang mewakili dan menyediakan kaedah yang berbeza untuk memanipulasi koleksi. Jadi rangka kerja Collections dalam Java menyediakan struktur data berbeza yang telah dilaksanakan untuk menyimpan data dan kaedah, untuk memanipulasinya dengan ciri seperti menyusun, mencari, memadam dan memasukkan . Sebagai contoh , anda ingin melaksanakan sistem untuk beberapa syarikat rawak untuk meningkatkan perkhidmatan untuk pelanggan mereka, berdasarkan asas siapa cepat dia dapat. Ini juga dikenali sebagai pelaksanaan FIFO (first in first out). Sekarang kita perlu melaksanakan struktur data ini dan kemudian menggunakannya untuk mencapai matlamat kita. Rangka kerja Collections memberikan kami antara muka Baris Gilir yang kami hanya perlu mengimport dan bukannya melaksanakan, kemudian gunakannya dan kami selesai. Pelaksanaan : Anda boleh mengimport semua koleksi dengan menggunakan baris berikut:import java.util.*;
Jika anda ingin mengimport koleksi tertentu kemudian gunakan nama pakej yang tepat, seperti:
import java.util.LinkedList;
Faedah Rangka Kerja Koleksi di Jawa
Ia mempunyai faedah berikut.- Sudah Dilaksanakan (menjimatkan masa).
- Kecekapan Prestasi (kelajuan dan kualiti).
- Mengurangkan usaha untuk belajar dan menggunakan API baharu.
Apakah Hierarki Rangka Kerja Koleksi?
Sekarang mari kita lihat hierarki koleksi tetapi pertama sekali, kita perlu mengetahui komponen penting rangka kerja ini.- Antara muka
- Kelas (pelaksanaan)
- Algoritma
Hierarki Rangka Kerja Koleksi
Untuk pemahaman anda:- Koleksi, Set, Baris Gilir dan Senarai semuanya adalah antara muka. Set, Baris Gilir dan Senarai dilanjutkan oleh antara muka Koleksi.
- PriorityQueue, HashSet, LinkedList dan Stack semuanya adalah kelas atau pelaksanaan antara muka ini.
- Ia tidak wajib bahawa kelas melaksanakan hanya satu antara muka. LinkedList juga melaksanakan antara muka Deque, sebagai contoh.
Jenis Koleksi
Rangka kerja koleksi Java mempunyai banyak jenis koleksi di dalamnya untuk mengurangkan usaha kami. Berikut adalah senarai beberapa koleksi:- Kelas ArrayList
- Kelas LinkedList
- Antara Muka Senarai
- Tetapkan Antara Muka
- Antara Muka Baris
- Antara Muka Peta
- Kelas PriorityQueue
- Kelas HashMap
- Antara Muka Setanding
- Kelas LinkedHashMap
- Kelas TreeMap
- HashTable
Antara Muka Koleksi
Di sini kita akan membincangkan beberapa antara muka koleksi biasa dan kemudian beberapa kaedah yang dilaksanakan oleh kelas.Antara Muka Koleksi
Ini adalah asas asas untuk rangka kerja Koleksi kerana ia menyediakan semua kaedah yang diperlukan untuk pelaksanaan. Peta adalah satu-satunya struktur data yang tidak melaksanakannya tetapi selebihnya semuanya melaksanakan kaedahnya. Antara muka ini mempunyai kaedah untuk mengetahui saiz koleksi, dan sama ada objek wujud dalam koleksi, menambah atau mengalih keluar objek daripada koleksi.Antara Muka Boleh Diulang
Ia adalah antara muka akar untuk rangka kerja Koleksi kerana ia dilanjutkan oleh antara muka Koleksi yang dilaksanakan oleh semua kelas. Ia mengembalikan iterator untuk koleksi khusus untuk mengulanginya.Antara Muka Baris
Baris gilir digunakan untuk memegang elemen tetapi ia tidak boleh diproses. Melaksanakan operasi pengumpulan asas, ia juga menyediakan kaedah sisipan dan pengekstrakan tambahan.Tetapkan Antara Muka
Set digunakan untuk menyimpan elemen unik di dalamnya. Ia tidak pernah mengandungi unsur pendua dan memodelkan abstraksi set matematik untuk mewakili set seperti proses yang dijalankan pada mesin.Antara Muka Senarai
Senarai ialah koleksi tertib kadangkala dipanggil jujukan yang boleh menyimpan elemen pendua di dalamnya. Ia memberikan kawalan kepada pengguna untuk mengemas kini atau mengalih keluar elemen tertentu, memasukkan elemen pada titik tertentu dengan menggunakan nilai indeks integernya. LinkedList dan ArrayList ialah kelas pelaksanaan antara muka Senarai.Antara Muka Deque
Deque bermaksud baris gilir dua hujung yang bermaksud kita boleh melakukan operasi pada kedua-dua hujungnya. Kita boleh memasukkan dan mengeluarkan elemen dari kedua-dua hujungnya. Antara muka Deque memanjangkan antara muka baris gilir. ArrayDeque dan LinkedList kedua-duanya melaksanakan antara muka Deque. Ia menyediakan kaedah untuk memasukkan, memadam, dan memeriksa contoh dari kedua-dua hujung.Antara Muka Peta
Antara muka peta juga merupakan sebahagian daripada rangka kerja Koleksi tetapi ia tidak memanjangkan antara muka Koleksi. Ia digunakan untuk menyimpan pasangan nilai kunci. Pelaksanaan utamanya ialah HashMap, TreeMap, dan LinkesHashMap yang serupa dalam aspek tertentu dengan HashSet, TreeSet dan LinkedHashSet. Ia sentiasa mengandungi kunci unik tetapi nilainya boleh diduplikasi. Ia berguna apabila anda perlu menambah, memadam atau mencari item berdasarkan kunci. Ia memberikan kita kaedah asas seperti meletakkan , dapatkan , keluarkan , saiz , kosong , dan sebagainya.Kaedah Biasa Antara Muka ini
Sekarang kita akan melihat beberapa kaedah biasa yang disediakan untuk pelaksanaan kelas yang berbeza dalam rangka kerja ini kecuali antara muka Peta.Kaedah | Penerangan |
---|---|
tambah boolean awam(E e) | Digunakan untuk memasukkan elemen ke dalam koleksi |
buang boolean awam(elemen objek) | Digunakan untuk mengalih keluar elemen daripada koleksi |
saiz int awam () | Mengembalikan bilangan elemen dalam koleksi |
boolean awam mengandungi(elemen objek) | Digunakan untuk mencari elemen |
boolean awam isEmpty() | Menyemak sama ada koleksi kosong |
boolean awam sama (elemen objek) | Menyemak kesaksamaan |
Kelas Koleksi
Seperti yang kita tahu rangka kerja mempunyai antara muka yang berbeza yang dilaksanakan oleh banyak kelas di dalamnya. Sekarang mari kita lihat beberapa kelas yang biasa digunakan.LinkedList
Ia ialah struktur data yang paling biasa digunakan yang melaksanakan senarai berganda untuk menyimpan elemen di dalamnya. Ia boleh menyimpan elemen pendua. Ia melaksanakan antara muka Dequeue yang dilanjutkan oleh antara muka Baris dan antara muka Senarai. Ia tidak disegerakkan. Sekarang mari kita lihat bagaimana untuk menyelesaikan masalah kita yang dibincangkan di atas (konsep FIFO) menggunakan LinkedList. Masalahnya ialah untuk melayani pelanggan dengan cara yang mereka sampai iaitu keluar dahulu .Contoh
import java.util.*;
public class LinkedListExample {
public static void main(String[] args) {
Queue<String> customerQueue = new LinkedList<String>();
//Adding customers to the Queue as they arrived
customerQueue.add("John");
customerQueue.add("Angelina");
customerQueue.add("Brooke");
customerQueue.add("Maxwell");
System.out.println("Customers in Queue:"+customerQueue);
//element() => returns head of the queue
//we will see our first customer and serve him
System.out.println("Head of the queue i.e first customer: "+customerQueue.element());
//remove () method =>removes first element(customer) from the queue i.e the customer is served so remove him to see next
System.out.println("Element removed from the queue: "+customerQueue.remove());
//poll () => removes and returns the head
System.out.println("Poll():Returned Head of the queue: "+customerQueue.poll());
//print the remaining customers in the Queue
System.out.println("Final Queue:"+customerQueue);
}
}
Pengeluaran
Pelanggan dalam Baris Gilir:[John, Angelina, Brooke, Maxwell] Ketua baris gilir iaitu pelanggan pertama: John Element dialih keluar daripada baris gilir: John Poll(): Kembali Ketua baris gilir: Angelina Baris Terakhir:[Brooke, Maxwell]
ArrayList
Ia hanya melaksanakan antara muka Senarai. Ia mengekalkan susunan sisipan dan menggunakan tatasusunan dinamik untuk menyimpan elemen jenis data yang berbeza. Elemen boleh diduplikasi. Ia juga tidak disegerakkan dan boleh menyimpan nilai nol. Sekarang mari kita lihat kaedahnya yang berbeza... Ini berguna apabila kita tidak tahu berapa banyak rekod atau elemen yang perlu kita masukkan. Mari kita ambil contoh perpustakaan di mana kita tidak tahu berapa banyak buku yang perlu kita simpan. Jadi apabila kita mempunyai buku, kita perlu memasukkannya ke dalam ArrayList.Contoh
public class ArrayListExample {
public static void main(String args[]) {
// Creating the ArrayList
ArrayList<String> books = new ArrayList<String>();
// Adding a book to the list
books.add("Absalom, Absalom!");
// Adding a book in array list
books.add("A Time to Kill");
// Adding a book to the list
books.add("The House of Mirth");
// Adding a book to the list
books.add("East of Eden");
// Traversing the list through Iterator
Iterator<String> itr = books.iterator();
while (itr.hasNext()) {
System.out.println(itr.next());
}
}
}
Pengeluaran
Absalom, Absalom! Masa untuk Membunuh Rumah Mirth Timur Eden
HashSet
Ia melaksanakan antara muka Set dan tidak pernah mengandungi nilai pendua. Ia melaksanakan jadual hash untuk menyimpan nilai. Ia juga membenarkan nilai nol. Ia tidak pernah mengekalkan tertib sisipan tetapi menyediakan prestasi masa yang tetap untuk menambah , mengalih keluar , saiz dan mengandungi kaedah. Ia adalah yang terbaik untuk operasi carian dan ia tidak disegerakkan.Contoh
import java.util.*;
class HashSetExample{
public static void main(String args[]){
//creating HashSet and adding elements to it
HashSet<Integer> hashSet=new HashSet();
hashSet.add(1);
hashSet.add(5);
hashSet.add(4);
hashSet.add(3);
hashSet.add(2);
//getting an iterator for the collection
Iterator<Integer> i=hashSet.iterator();
//iterating over the value
while(i.hasNext()) {
System.out.println(i.next());
}
}
}
Pengeluaran
1 2 3 4 5
Seperti yang anda lihat ia tidak mengekalkan susunan sisipan.
ArrayDeque
Ia melaksanakan antara muka Deque supaya ia membenarkan operasi dari kedua-dua hujung. Ia tidak membenarkan nilai nol. Ia lebih pantas daripada Stack dan LinkedList apabila dilaksanakan sebagai Stack dan LinkedList. ArrayDeque tidak mempunyai sekatan saiz kerana ia membesar dan mengecut mengikut keperluan. Ia tidak disegerakkan, bermakna ia tidak selamat untuk benang. Untuk memastikan ia selamat benang, kita perlu melaksanakan beberapa logik luaran.Contoh
import java.util.*;
public class ArrayDequeExample {
public static void main(String[] args) {
//creating Deque and adding elements
Deque<String> deque = new ArrayDeque<String>();
//adding an element
deque.add("One");
//adding an element at the start
deque.addFirst("Two");
//adding an element at the end
deque.addLast("Three");
//traversing elements of the collection
for (String str : deque) {
System.out.println(str);
}
}
}
Pengeluaran
Dua Satu Tiga
HashMap
Ia adalah pelaksanaan antara muka Peta yang disokong oleh jadual cincang. Ia menyimpan pasangan nilai kunci. Ia tidak membenarkan nilai nol. Ia tidak disegerakkan. Ia tidak pernah menjamin tertib sisipan. Ia menyediakan prestasi masa yang berterusan untuk kaedah seperti get , dan put . Prestasinya bergantung pada dua faktor — kapasiti awal dan faktor beban . Kapasiti ialah bilangan baldi dalam jadual cincang jadi kapasiti awal ialah bilangan baldi yang diperuntukkan pada masa penciptaan. Faktor beban ialah ukuran berapa banyak jadual cincang boleh diisi sebelum kapasitinya ditingkatkan. Kaedah rehash digunakan untuk meningkatkan kapasiti dan ia terutamanya menggandakan bilangan baldi.Contoh
import java.util.*;
public class HashMapExample{
public static void main(String args[]){
//creating a HashMap
HashMap<Integer,String> map=new HashMap<Integer,String>();
//putting elements into the map
map.put(1,"England");
map.put(2,"USA");
map.put(3,"China");
//get element at index 2
System.out.println("Value at index 2 is: "+map.get(2));
System.out.println("iterating map");
//iterating the map
for(Map.Entry m : map.entrySet()){
System.out.println(m.getKey()+" "+m.getValue());
}
}
}
Pengeluaran
Nilai pada indeks 2 ialah: Peta lelaran China 1 England 2 USA 3 China
Algoritma
Rangka kerja Koleksi memberikan kami algoritma yang berbeza untuk operasi yang berbeza untuk digunakan pada koleksi. Di sini kita akan melihat operasi utama yang dilindungi oleh algoritma ini. Ia mengandungi algoritma yang berkaitan dengan:- Menyusun
- Mencari
- Kocok
- Manipulasi Data Rutin
- Komposisi
- Mencari Nilai Ekstrem
Menyusun
Algoritma isihan menyusun semula senarai mengikut perhubungan susunan. Dua bentuk perhubungan disediakan.- Susunan Semulajadi
- Susunan Perbandingan
Susunan Semulajadi
Dalam susunan semula jadi senarai disusun mengikut elemennya.Susunan Perbandingan
Dalam bentuk pesanan ini parameter tambahan, yang merupakan pembanding, diluluskan bersama-sama dengan senarai. Algoritma isihan cantum yang sedikit dioptimumkan digunakan untuk mengisih yang pantas dan stabil kerana ia menjamin masa berjalan n log(n) dan ia tidak menyusun semula elemen yang sama. Kami akan menggunakan contoh yang sama dari ArrayList untuk menunjukkan pengisihan.Contoh
import java.util.*;
public class SortingExample{
public static void main(String args[]){
//Creating arraylist
ArrayList<String> books=new ArrayList<String>();
//Adding a book to the arraylist
books.add("A Time to Kill");
//Adding a book to the arraylist
books.add("Absalom, Absalom!");
//Adding a book to the arraylist
books.add("The House of Mirth");
//Adding a book to the arraylist
books.add("East of Eden");
//Traversing list through Iterator before sorting
Iterator itrBeforeSort=books.iterator();
while(itrBeforeSort.hasNext()){
System.out.println(itrBeforeSort.next());
}
//sorting the books
Collections.sort(books);
System.out.println("After sorting the books");
//Traversing list through Iterator after sorting
Iterator itr=books.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
}
}
Pengeluaran
Masa untuk Membunuh Absalom, Absalom! The House of Mirth East of Eden Selepas menyusun buku A Time to Kill Absalom, Absalom! Timur Eden Rumah Mirth
GO TO FULL VERSION