A set mung koleksi obyek unik. Unik tegese ora ana rong obyek sing bisa nduweni nilai sing padha. Gumantung ing implementasine saka pesawat, bisa utawa ora bisa dhawuh. Set Java, minangka Abstract Data Type (ADT), nduweni sawetara operasi kunci (ing T nggantosi sembarang tipe data contone int, String, utawa obyek kelas apa wae):
boolean add(T item): ngasilake bener yen item wis kasil ditambahake menyang pesawat, lan palsu yen item wis ing pesawat.boolean remove(T item): ngasilake bener yen item kasil dibusak saka pesawat lan palsu digunakake (yen item ora ana ing pesawat).boolean contains(T item): ngasilake bener yen item ing pesawat lan palsu digunakake.boolean isEmpty(): ngasilake bener yen pesawat kosong lan palsu digunakake.
contains()menehi runtime sing apik kanggo iki: O (1) utawa O (log n) kerumitan wektu gumantung yen implementasine digunakake minangka a HashSetutawa a.TreeSet, mungguh. Dadi kanggo apa set bisa digunakake? Ya, yen sampeyan kudu nglacak akeh obyek sing béda--kayata ID, jeneng, utawa pengenal unik liyane--lan kerep mriksa manawa ana item ing koleksi kasebut, mula sakumpulan bisa dadi pilihan sing apik. Iki minangka conto kasus panggunaan saka sawijining set: Mbayangno sampeyan duwe dhaptar Studentobyek sing makili kabeh siswa ing kelas tartamtu. Saben Studentbisa duwe jeneng unik (string) lan kelas (int) kanggo kelas iki. Yen sampeyan pengin ngrujuk dhaptar kabeh siswa A (kelas>=90) kanthi kerep, mula bakal angel ngubengi dhaptar iki lan mriksa biji saben siswa. Nanging, sampeyan bisa nggunakake HashSetstrings sing nglacak kabeh siswa A ing kelas, kayata:
- Saben biji siswa dianyari, sampeyan mung bisa mriksa yen biji anyar Siswa luwih gedhe utawa padha karo 90 utawa ora.
- Yen mangkono, tambahake menyang set A siswa nggunakake
add()- Yen dheweke wis dadi mahasiswa A, mula operasi iki ora digatekake.
- Yen ora, banjur copot saka pesawat saka A siswa nggunakake
remove()- Yen dheweke dudu mahasiswa A ing wektu iki, mula operasi iki ora digatekake.
- Yen mangkono, tambahake menyang set A siswa nggunakake
contains(“Johnny Appleseed”)ing set kasebut. Mesthi, iki mung minangka salah sawijining conto kasus panggunaan kanggo pesawat, lan masalah tartamtu kanggo nglacak siswa A bisa ditanggulangi kanthi cara liya.
Implementasine: HashSet ing Java lan Java TreeSet Conto
IngHashSetbasa Jawa lan ing TreeSetbasa Jawa ana ing java.utils package. Sampeyan bisa ngimpor kaya kasebut:
// imports everything from Java's util package, including HashSet and TreeSet
import java.util.*;
utawa
import java.util.HashSet; // imports only the Java HashSet
import java.util.TreeSet; // imports only the Java TreeSet
Bentenipun utama antarane Jawa HashSetlan Jawa TreeSetyaiku sing TreeSetdiurutake, dene sing HashSetora. Iki kok TreeSetwis O (log n) kerumitan wektu kanggo operasi tombol, dene HashSetwis O (1) utawa kerumitan wektu pancet; kudu TreeSetnjaga ketertiban sawayah-wayah. Saliyane operasi set tombol sing wis kasebut sadurunge, loro HashSetlan TreeSeting Jawa duwe sawetara fungsi mbiyantu liyane:
void clear(): Mbusak set kabeh obyek.int size(): ngasilake jumlah obyek ing pesawat.Object clone(): ngasilake salinan cethek saka pesawat.Iterator iterator(): ngasilake iterator kanggo pesawat, miwiti ing obyek pisanan.
size()yen sampeyan pengin ndeleng jumlah siswa 'A' sing sampeyan duwe, utawa clear()yen sampeyan pengin mbusak dhaptar ing pungkasan semester. Sampeyan bisa uga nggunakake clone()kanggo nggawe lan nyimpen tiron saka dhaptar siswa A ing titik tartamtu ing wektu, kayata nalika laporan midterm (kanthi cara iki klon ora tetep anyar bebarengan karo asli).
Tuladha Java HashSet
Ing ngisor iki conto singkat sakaHashSets Stringsing digunakake ing basa Jawa:
import java.util.HashSet;
class HashSetDemo {
public static void main(String[] args)
{
// create a HashSet of Strings
HashSet<String> hs = new HashSet<String>();
// Add elements using the add() method
hs.add("Collin");
hs.add("Bob");
hs.add("Abigail");
// Duplicates will ignored; this statement is useless
hs.add("Collin");
System.out.println(hs);
System.out.println("Bob is in the set (T/F): " + hs.contains("Bob"));
System.out.println("Max is in the set (T/F): " + hs.contains("Max"));
}
}
Output: --------
[Collin, Bob, Abigail]
Bob is in the set (T/F): true
Max is in the set (T/F): false
Tuladha Java TreeSet
Tuladha conto basa Jawa bisa mbantu sampeyan mangerteni teori kasebut. Ing ngisor iki minangka conto singkat sakaTreeSets Stringsing digunakake ing basa Jawa:
import java.util.TreeSet;
class TreeSetDemo {
public static void main(String[] args)
{
// create a TreeSet of Strings
TreeSet<String> ts = new TreeSet<String>();
// Add elements using the add() method.
ts.add("Collin");
ts.add("Bob");
ts.add("Abigail");
// Duplicates will ignored; this statement is useless
ts.add("Collin");
// printing the set prints the names in alphabetical order!
System.out.println(ts);
System.out.println("Bob is in the set (T/F): " + ts.contains("Bob"));
System.out.println("Max is in the set (T/F): " + ts.contains("Max"));
System.out.println("Size of the set: " + ts.size());
ts.clear();
System.out.println("Size of the set after clear(): " + ts.size());
}
}
Output: -------
[Abigail, Bob, Collin]
Bob is in the set (T/F): true
Max is in the set (T/F): false
Size of the set: 3
Size of the set after clear(): 0
Iku kabeh! Muga-muga iki mbantu
GO TO FULL VERSION