Apa Setel ing Jawa
Ayo kita kelingan sedhela sing antarmuka Set nemtokake pesawat (set). Iku ngluwihi Koleksi lan nemtokake prilaku koleksi sing ora ngidini unsur duplikat. Mangkono, cara nambah () ngasilake palsu yen nyoba kanggo nambah unsur duplikat kanggo pesawat. Antarmuka ora nemtokake cara tambahan dhewe. Antarmuka Set njupuk care saka uniqueness saka obyek disimpen, uniqueness ditemtokake dening implementasine saka padha () cara. Mulane, yen obyek saka kelas digawe bakal ditambahake menyang Set , iku seng di pengeni kanggo override witjaksono () cara.Kelas LinkedHashSet
Sadurunge ngomong babagan kelas LinkedHashSet , kita kudu nyebutake relatif cedhak, kelas HashSet . HashSet ngleksanakake antarmuka Set . Iki nggawe koleksi sing nyimpen unsur ing tabel hash. Unsur saka tabel hash disimpen minangka pasangan kunci-nilai. Tombol kasebut nemtokake sel (utawa segmen) kanggo nyimpen nilai kasebut. Isi kunci digunakake kanggo nemtokake nilai unik sing diarani kode hash. Kita bisa mikir kode hash minangka pengenal obyek, sanajan ora kudu unik. Kode hash iki uga dadi indeks kanggo nyimpen data sing ana gandhengane karo kunci kasebut. Kelas LinkedHashSet Java ngluwihi HashSet tanpa nambahake metode anyar.LinkedHashSet ngidini sampeyan mriksa kanthi cepet ana entri, kaya HashSet , nanging ngemot dhaptar dhawuh ing njero. Iki tegese nyimpen urutan selipan saka unsur. Ing tembung liyane, LinkedHashSet njaga dhaptar sing disambung saka unsur set ing urutan sing dilebokake. Iki ngidini pengulangan dhawuh selipan menyang set. Nanging iki nyebabake kelas LinkedHashSet nindakake operasi luwih suwe tinimbang kelas HashSet .Fitur Penting LinkedHashSet
-
Kita bisa nyimpen unsur unik mung ing LinkedHashSet
-
LinketHashSet ayo ngekstrak unsur kanthi urutan sing padha karo sing kita lebokake
-
LinkedHashSet Ora Disinkronake
-
LinkedHashSet ngidini nyimpen unsur null
-
LinkedHashSet nggunakake teknik hashing kanggo nyimpen unsur ing indeks tartamtu adhedhasar kode hash
Metode LinkedHashSet
Saliyane metode sing diwarisake saka kelas induk, HashSet nemtokake cara ing ngisor iki:-
Tambah boolean (Obyek o) nambah unsur sing ditemtokake menyang set iki yen durung ana.
-
void clear () mbusak kabeh unsur saka pesawat iki.
-
Klone obyek () ngasilake salinan cethek saka conto LinkedHashSet iki : unsur kasebut ora dikloning.
-
boolean ngemot (Obyek o) ngasilake bener yen set iki ngemot unsur sing ditemtokake.
-
boolean isEmpty () ngasilake bener yen set iki ora ana unsur.
-
Iterator iterator () ngasilake iterator liwat unsur pesawat iki.
-
boolean mbusak (Obyek o) mbusak unsur kasebut saka pesawat iki, yen ana.
-
int size () ngasilake jumlah unsur ing pesawat iki (jumlah unsur).
import java.util.LinkedHashSet;
import java.util.Set;
public class LinkedHashSetEx1 {
public static void main(String[] args) {
//LinkedHashSet() Init
Set<String> set = new LinkedHashSet<>();
//adding elements to LinkedHashSet
set.add("Re"); //first added element
set.add("Do");
set.add("Fa");
set.add("Sol");
set.add("La");
set.add("Ti");
set.add("Mi");//last added element
System.out.println(set);
}
}
Output yaiku:

Conto 2. Nambahake duplikat menyang LinkedHashSet
Ayo dilebokake ing LinkedHashSet 7 unsur kanthi jeneng skor musik maneh lan sijine siji unsur anyar sing padha karo salah sawijining unsur sing diselehake sadurunge.
import java.util.LinkedHashSet;
import java.util.Set;
public class LinkedHashSetEx2 {
public static void main(String[] args) {
Set<String> set = new LinkedHashSet<>();
set.add("Re");
set.add("Do");
set.add("Fa");
set.add("Sol");
set.add("La");
set.add("Ti");
set.add("Mi");
set.add("Sol");
System.out.println(set);
}
}
Output program kasebut ing kene:
Conto 3. Mbusak unsur saka LinkedHashSet
import java.util.LinkedHashSet;
import java.util.Set;
public class LinkedHashSet3 {
public static void main(String[] args) {
Set<String> set = new LinkedHashSet<>();
set.add("Re");
set.add("Do");
set.add("Fa");
set.add("Sol");
set.add("La");
set.add("Ti");
set.add("Mi");
System.out.println(set);
set.remove("Fa");// removing an element from our set
set.remove("Score");//trying to remove element that isn't in set
System.out.println(set.remove("Score"));
System.out.println("Print our set without elements removed: ");
System.out.println(set);
set.clear();
System.out.println("Print out our set after clear command: ");
System.out.println(set);
}
}
Output program kasebut ing kene:
LinkedHashSet vs HashSet
Kelas loro iki minangka sedulur sing cedhak. Nanging ing jero HashSet nggunakake HashMap kanggo nyimpen obyek nalika LinkedHashSet nggunakake LinkedHashMap . Yen sampeyan ora perlu njaga urutan sisipan nanging kudu nyimpen obyek unik, luwih cocok nggunakake HashSet . Yen sampeyan kudu njaga urutan sisipan unsur banjur LinkedHashSet dadi pilihan sampeyan. Kinerja LinkedHashSet rada luwih alon tinimbang HashSet amarga LinkedHashSet nggunakake LinkedList internal kanggo njaga urutan sisipan unsur. Ayo duwe conto:
import java.util.*;
public class LinkedHashSetExample1 {
public static void main(String[] args) {
// while regular hash set orders its elements according to its hashcode stamps
Set<Integer> regularHashSet = new HashSet<>();
regularHashSet.add(7);
regularHashSet.add(3);
regularHashSet.add(5);
regularHashSet.add(65536);
regularHashSet.add(9);
// few duplicates
regularHashSet.add(5);
regularHashSet.add(7);
// next will print:
// > regularHashSet = [65536, 3, 5, 7, 9]
System.out.println("regularHashSet = " + regularHashSet);
// linked hash set keeps order of adding unchanged
Set<Integer> linkedHashSet = new LinkedHashSet<>();
linkedHashSet.add(7);
linkedHashSet.add(3);
linkedHashSet.add(5);
linkedHashSet.add(65536);
linkedHashSet.add(9);
// few duplicates
linkedHashSet.add(5);
linkedHashSet.add(7);
// next will print:
// > linkedHashSet = [7, 3, 5, 65536, 9]
System.out.println("linkedHashSet = " + linkedHashSet);
}
}
Output saka program yaiku:
Nggunakake Java LinkedHashSet ing aplikasi donya nyata
Wiwit LinkedHashSet ngidini sampeyan mriksa kanthi cepet manawa ana entri lan uga nyimpen pesenan, koleksi iki katon cukup trep kanggo mbusak duplikat saka dhaptar. Utawa, contone, ngrampungake masalah kaya item sing mentas katon ing tas. Utawa, elinga game kasebut, Pokemon Go? LinkedHashSet bisa nyimpen dhaptar Pokémon sing wis sampeyan temoni lan urutan sing ditemokake ing dalan sampeyan. Ing kasus iki, Pokémon "baleni" ora bakal ditambahake maneh ing dhaptar. Utawa, contone, dhaptar panggedhe dening tingkat sing wis ketemu ing sembarang game karo tingkat. Utawa sejarah panemune badan kosmik. LinkedHashSetngidini sampeyan mriksa kanthi cepet apa awak spasi wis ana ing dhaptar utawa ora, lan yen ora ana, banjur ditambahake menyang dhaptar. Ayo njupuk conto mbusak duplikat.
import java.util.*;
class LinkedHashSetExample2 {
public static void main(String[] args) {
List<String> listWithDuplicates = List.of("some","elements","with", "few", "duplicates", "were", "here", "duplicates", "duplicates");
Set<String> linkedHashSet = new LinkedHashSet<>(listWithDuplicates);
List<String> listWithoutDuplicates = new ArrayList<>(linkedHashSet);
// next will print:
// > listWithDuplicates = [some, elements, with, few, duplicates, here, duplicates, duplicates]
System.out.println("listWithDuplicates = " + listWithDuplicates);
// next will print:
// > listWithoutDuplicates = [some, elements, with, few, duplicates, here]
System.out.println("listWithoutDuplicates = " + listWithoutDuplicates);
// -------------------------------------------------------------------------
// while using regular Hash Set will generally produces some unexpected order
Set<String> regularHashSet = new HashSet<>(listWithDuplicates);
// next will print:
// > linkedHashSet = [some, elements, with, few, duplicates, were, here]
System.out.println("linkedHashSet = " + linkedHashSet);
// next will print:
// > regularHashSet = [here, some, with, duplicates, were, elements, few]
System.out.println("regularHashSet = " + regularHashSet);
}
}
Output program kasebut ing kene:
GO TO FULL VERSION