KodeGym/Blog Jawa/Acak/Java Set minangka Antarmuka
John Squirrels
tingkat
San Francisco

Java Set minangka Antarmuka

Diterbitake ing grup
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): Set Jawa minangka Antarmuka - 1
  • 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.
Set ing Jawa duwe teken fungsi cukup panjelasan (kaya sing kudu). Yen sampeyan nambahake rong item sing padha menyang set, mung item sing ditambahake pisanan sing bakal ana ing set kasebut. Kabeh upaya sakteruse kanggo nambah item padha bakal digatèkaké kajaba item pisanan dibusak. Salah sawijining operasi set sing paling umum digunakake yaiku mriksa yen item ana ing set tartamtu. Fungsi kasebut 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 nggunakakeadd()
      • Yen dheweke wis dadi mahasiswa A, mula operasi iki ora digatekake.
    • Yen ora, banjur copot saka pesawat saka A siswa nggunakakeremove()
      • Yen dheweke dudu mahasiswa A ing wektu iki, mula operasi iki ora digatekake.
Kanthi sistem kasebut, sampeyan mesthi duwe set paling anyar saka kabeh siswa 'A' ing kelas sampeyan. Yen sampeyan pengin mriksa apa Johnny Appleseed apik ing kelas sampeyan, sampeyan bisa kanthi gampang nelpon 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

Ing HashSetbasa 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.
Sampeyan bisa mbayangno nemokake kegunaan kanggo fungsi kasebut ing conto "daftar siswa A": sampeyan bisa nelpon 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 saka HashSets 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 saka TreeSets 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
Komentar
  • Popular
  • Anyar
  • lawas
Sampeyan kudu mlebu kanggo ninggalake komentar
Kaca iki durung duwe komentar