CodeGym /Blog Jawa /Acak /Koleksi ing Jawa
John Squirrels
tingkat
San Francisco

Koleksi ing Jawa

Diterbitake ing grup

Apa Koleksi ing Jawa?

Koleksi ing basa Jawa diwakili minangka wadhah sing nglumpukake kabeh unsur dadi siji. Contone , folder mail (klompok email), direktori telpon (pemetaan jeneng menyang nomer telpon).

Apa iku Framework?

Kerangka minangka dhasar utawa tata letak dhasar sing sampeyan miwiti nggarap kanthi nggunakake macem-macem kelas lan antarmuka sing kasedhiya. Contone , Laravel minangka salah sawijining kerangka PHP sing paling misuwur sing nyedhiyakake kerangka dhasar kanggo aplikasi sampeyan.

Apa Kerangka Koleksi ing Jawa?

Kabeh obyek diklompokaké dadi siji obyek bebarengan karo arsitektur sing makili lan menehi cara beda kanggo manipulasi koleksi. Dadi kerangka Koleksi ing Jawa nyedhiyakake struktur data sing beda-beda sing wis ditindakake kanggo nyimpen data lan metode, kanggo ngapusi kanthi fitur kayata ngurutake, nggoleki, mbusak, lan nyisipake . Contone , sampeyan pengin ngleksanakake sistem kanggo sawetara perusahaan acak kanggo nambah layanan kanggo pelanggan, adhedhasar pisanan teka pisanan ngawula basis. Iki uga dikenal minangka implementasi FIFO (first in first out). Saiki kita kudu ngetrapake struktur data iki lan banjur gunakake kanggo nggayuh tujuan kita. Framework Collections nyedhiyakake antarmuka Antrian sing mung kudu diimpor tinimbang dileksanakake, banjur gunakake, lan kita wis rampung. Implementasi : Sampeyan bisa ngimpor kabeh koleksi kanthi nggunakake baris ing ngisor iki:

import java.util.*;
Yen sampeyan pengin ngimpor koleksi tartamtu, gunakake jeneng paket sing tepat, kayata:

import java.util.LinkedList;

Paedah Kerangka Koleksi ing Jawa

Wis keuntungan ing ngisor iki.
  1. Wis Dilaksanakake (ngirit wektu).
  2. Efisiensi Kinerja (kacepetan lan kualitas).
  3. Nyuda upaya kanggo sinau lan nggunakake API anyar.

Apa Hierarki Kerangka Koleksi?

Saiki ayo ndeleng hirarki koleksi nanging pisanan, kita kudu ngerti komponen penting saka kerangka iki.
  1. Antarmuka
  2. Kelas (implementasi)
  3. Algoritma

Hierarki Kerangka Koleksi

Koleksi ing basa Jawa - 1Kanggo pangerten sampeyan:
  1. Koleksi, Set, Antrian, lan Dhaptar kabeh iku antarmuka. Set, Queue lan List ditambahake dening antarmuka Koleksi.
  2. PriorityQueue, HashSet, LinkedList, lan Stack kabeh minangka kelas utawa implementasi antarmuka kasebut.
  3. Iku ora prentah sing kelas ngleksanakake mung siji antarmuka. LinkedList uga ngleksanakake antarmuka Deque, contone.

Jinis Koleksi

Framework koleksi Jawa wis akèh jinis koleksi ing kanggo ngurangi efforts kita. Ing ngisor iki dhaptar sawetara koleksi:
  1. Kelas ArrayList
  2. Kelas LinkedList
  3. Dhaftar Antarmuka
  4. Setel Antarmuka
  5. Antarmuka antrian
  6. Antarmuka Peta
  7. Kelas PriorityQueue
  8. Kelas HashMap
  9. Antarmuka sing bisa dibandhingake
  10. Kelas LinkedHashMap
  11. Kelas TreeMap
  12. HashTable

Antarmuka Koleksi

Ing kene kita bakal ngrembug sawetara antarmuka koleksi umum lan banjur sawetara cara sing ditindakake dening kelas kasebut.

Antarmuka Koleksi

Iki minangka dhasar dhasar kanggo kerangka Koleksi amarga nyedhiyakake kabeh cara sing dibutuhake kanggo implementasine. Peta minangka siji-sijine struktur data sing ora ngleksanakake nanging sing isih ana kabeh ngetrapake metode kasebut. Antarmuka iki nduweni cara kanggo mangerteni ukuran koleksi, lan apa obyek ana ing koleksi, nambah utawa mbusak obyek saka koleksi.

Antarmuka Iterable

Iku antarmuka ROOT kanggo framework Collections minangka lengkap dening antarmuka Koleksi kang dipun ginakaken dening kabeh kelas. Iku ngasilake iterator kanggo koleksi tartamtu kanggo iterate liwat.

Antarmuka antrian

Antrian digunakake kanggo nahan unsur nanging ora bisa diproses. Ngleksanakake operasi koleksi dhasar, uga menehi cara selipan lan ekstraksi tambahan.

Setel Antarmuka

Set digunakake kanggo nahan unsur unik ing njero. Ora tau ngemot unsur duplikat lan model abstraksi set matematika kanggo makili set kayata proses sing mlaku ing mesin.

Dhaftar Antarmuka

Dhaptar minangka koleksi sing diurutake kadhangkala disebut urutan sing bisa ngemot unsur duplikat. Nyedhiyakake kontrol kanggo pangguna kanggo nganyari utawa mbusak unsur tartamtu, nglebokake unsur ing titik tartamtu kanthi nggunakake nilai indeks integer. LinkedList lan ArrayList minangka kelas implementasi antarmuka List.

Antarmuka Deque

Deque stands for antrian pindho rampung kang tegese kita bisa nindakake operasi ing loro ends. Kita bisa masang lan mbusak unsur saka loro ends. Antarmuka Deque ngluwihi antarmuka antrian. ArrayDeque lan LinkedList loro-lorone ngleksanakake antarmuka Deque. Iki menehi cara kanggo nglebokake, mbusak, lan mriksa conto saka loro ujung.

Antarmuka Peta

Antarmuka peta uga minangka bagéan saka kerangka Koleksi nanging ora ngluwihi antarmuka Koleksi. Iki digunakake kanggo nyimpen pasangan kunci-nilai. Implementasi utamane yaiku HashMap, TreeMap, lan LinkesHashMap sing padha ing aspek tartamtu karo HashSet, TreeSet, lan LinkedHashSet. Iku tansah ngemot kunci unik nanging nilai bisa diduplikasi. Iku migunani yen sampeyan kudu nambah, mbusak, utawa nelusuri item adhedhasar tombol. Iku menehi kita karo cara dhasar kayata sijine , njaluk , mbusak , ukuran , kosong , lan ing.

Cara Umum Antarmuka iki

Saiki kita bakal katon ing sawetara cara umum sing kasedhiya kanggo implementasine saka macem-macem kelas ing framework iki kajaba antarmuka Peta.
Metode Katrangan
public boolean add(E e) Digunakake kanggo nglebokake unsur menyang koleksi
mbusak boolean publik (elemen obyek) Digunakake kanggo mbusak unsur saka koleksi
ukuran public int() Ngasilake jumlah unsur ing koleksi
boolean publik ngemot (elemen obyek) Digunakake kanggo nggoleki unsur
public boolean isEmpty() Priksa manawa koleksi kosong
public boolean equals(elemen objek) Priksa kesetaraan

Kelas Koleksi

Kita ngerti framework wis antarmuka beda kang dipun ginakaken dening akeh kelas nang. Saiki ayo goleki sawetara kelas sing umum digunakake.

LinkedList

Iku struktur data sing paling umum digunakake sing ngleksanakake dhaptar pindho disambung kanggo nyimpen unsur nang. Bisa nyimpen unsur duplikat. Iku ngleksanakake antarmuka Dequeue lengkap dening antarmuka Antrian lan antarmuka Dhaftar. Iku ora diselarasake. Saiki ayo ndeleng carane ngatasi masalah sing dibahas ing ndhuwur (konsep FIFO) nggunakake LinkedList. Masalahe yaiku kanggo ngladeni para pelanggan kanthi cara sing padha teka, yaiku pisanan metu .

Tuladha


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);
    }
}

Output

Pelanggan ing Antrian:[John, Angelina, Brooke, Maxwell] Kepala antrian yaiku pelanggan pisanan: John Element dibusak saka antrian: John Poll (): Kepala antrian bali: Angelina Final Queue: [Brooke, Maxwell]

ArrayList

Iku mung ngleksanakake antarmuka List. Iki njaga urutan sisipan lan nggunakake array dinamis kanggo nyimpen unsur saka macem-macem jinis data. Unsur bisa diduplikasi. Iku uga non-sinkronisasi lan bisa nyimpen nilai null. Saiki ayo ndeleng cara sing beda-beda ... Iki migunani nalika kita ora ngerti jumlah rekaman utawa unsur sing kudu dilebokake. Coba conto perpustakaan sing ora ngerti jumlah buku sing kudu disimpen. Dadi saben kita duwe buku, kita kudu nglebokake menyang ArrayList.

Tuladha


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());
		}
	}
}

Output

Absalom, Absalom! Wektu kanggo Mateni House of Mirth East of Eden

HashSet

Iku ngleksanakake antarmuka Setel lan ora tau ngemot nilai duplikat. Iki ngetrapake tabel hash kanggo nyimpen nilai. Uga ngidini nilai null. Ora tau njaga urutan sisipan nanging nyedhiyakake kinerja wektu sing tetep kanggo nambah , mbusak , ukuran , lan ngemot metode. Paling apik kanggo operasi telusuran lan ora disinkronake.

Tuladha


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());  
        }  
    }  
}

Output

1 2 3 4 5
Nalika sampeyan bisa ndeleng iku ora njaga urutan selipan.

ArrayDeque

Iku ngleksanakake antarmuka Deque supaya ngidini operasi saka loro ends. Ora ngidini nilai null. Iku luwih cepet tinimbang Stack lan LinkedList nalika dileksanakake minangka Stack lan LinkedList. ArrayDeque ora duwe watesan ukuran amarga tuwuh lan nyusut miturut syarat. Iki ora disinkronake, tegese ora aman kanggo benang. Supaya thread-aman kita kudu ngleksanakake sawetara logika external.

Tuladha


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);  
       }  
   }  
}

Output

Loro siji telu

HashMap

Iki minangka implementasi antarmuka Peta sing didhukung dening tabel hash. Iku nyimpen pasangan kunci-nilai. Ora ngidini nilai null. Iku ora diselarasake. Ora tau njamin urutan sisipan. Iki nyedhiyakake kinerja wektu sing tetep kanggo metode kaya get , lan put . Kinerja gumantung ing rong faktor - kapasitas awal lan faktor beban . Kapasitas minangka jumlah ember ing tabel hash supaya kapasitas awal minangka jumlah ember sing dialokasikan nalika nggawe. Faktor beban yaiku ukuran jumlah tabel hash sing bisa diisi sadurunge kapasitase ditambah. Cara rehash digunakake kanggo nambah kapasitas lan utamane tikel kaping pindho jumlah ember.

Tuladha


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());    
        }   
    }  
}

Output

Nilai ing indeks 2 yaiku: China iterating map 1 Inggris 2 USA 3 China

Algoritma

Framework Koleksi menehi kita karo algoritma beda kanggo operasi beda kanggo aplikasi kanggo koleksi. Ing kene kita bakal ndeleng operasi utama sing dilindhungi dening algoritma kasebut. Isine algoritma sing ana gandhengane karo:
  1. Ngurutake
  2. Nggoleki
  3. Ngacak
  4. Manipulasi Data Rutin
  5. Komposisi
  6. Nemokake Nilai Extreme
Kanggo pangerten sing luwih apik, kita bakal ngrembug algoritma ngurutake.

Ngurutake

Algoritma ngurutake maneh dhaptar miturut hubungan urutan. Ana rong jinis hubungan.
  1. Urutan Natural
  2. Comparison Ordering

Urutan Natural

Ing urutan alam, dhaptar diurutake miturut unsur-unsure.

Comparison Ordering

Ing wangun iki pesenan parameter tambahan, kang comparator, liwati bebarengan karo dhaftar. Algoritma ngurutake gabungan sing rada dioptimalake digunakake kanggo ngurutake sing cepet lan stabil amarga njamin n log (n) wektu mlaku lan ora nyusun ulang unsur sing padha. Kita bakal nggunakake conto sing padha saka ArrayList kanggo nduduhake ngurutake.

Tuladha


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());  
        }  
    }  
}

Output

Wektu kanggo Mateni Absalom, Absalom! The House of Mirth East of Eden Sawise ngurutake buku A Time to Kill Absalom, Absalom! Wétan Eden House of Mirth

Kesimpulan

Muga-muga saiki sampeyan ngerti apa kerangka koleksi java, apa antarmuka lan kelas lan cara ngetrapake kelas sing beda-beda. Sampeyan bisa tansah nggunakake framework iki kanggo ngurangi efforts ing Jawa. Bebas bae kanggo latihan lan bali mrene yen sampeyan butuh pitulung liyane. Sugeng sinau!
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION