Sets en HashSets Flashcards
Daar kan duplikate wees in n set?
Nope - sets kan geen duplikate he nie (dit is effektief n lys keys)
Sets het seker gewone metodes ook (soos wat mens kry met lists)
Add
Remove
Clear
Size
IsEmpty
Contains
N interessante ding van sets, wat mens nie verwag nie?
Jy kan nie n spesifieke element onttrek nie. Jy kan net oor die lys ittereer
Hoe verklaar n mens n set?
Set <KlasNaam> lys = new HashSet<>();</KlasNaam>
So interessant, n hashset se add method return actually n waarde?
Jip, n boolean waarde, so met n add metode kan jy bv n boolean return he, en dan
Return this.satellites.add(moon)
So een an die handige goed van sets is n union, hoe werk dit?
Ekt verskillende sets, daar kan gemeenskaplkke elemente wees. Ek soek alles in een set, sonder duplikate (so piggyback basies op die ontwerp struktuur dat daar nie twee van dieselfde objekte kan wees nie)
Beweeg dan deur jou oorspronklikse sets, en dan sal j bv he
Moons.addAll(planet.getSattelites()); en laaste method return ook.weer n set
Wanner word dit aanbeveel om die default equals te override? En wat word tipies saam dit geoverride?
Wanneer jy sets of maps gebruik
hashCode() moet ook geoverride word
Hoe word equals tipies ge-override?
Public final boolean equals (Object obj){
If (this==obj) return true;
If ((obj==null)||(obj.getClass()!=this.getClass())) return false;
String objName = ((Heavenlybody)obj).getName();
Return this.name.equals(objName);}
EN
Public int hashCode(){
return this.name.hashCode()+57;)
Sets het bulk operations? (Wat is die 4 belangrikstes?)
Jip, dit is wat dit so handig maak:
S1.containsAll(S2)
S1.addAll(S2)
S1.retainAll(S2)
S1.removeAll(S2)
Versigtig met sets, dit is gewoo lik n goeie idee om kopiee daarvan te create en daarmee te werk?
Korrek, want bulk operations are destructive
So wat is ook interessant met die equals en hash code funksies wanneer jy dit override?
Die hascode funskie moet n unieke syfer return vir elke instance van die objek. So kom ons se jy check twee goed by die equals funskie, help dit nie jy generate n hash code gebasseer op een van die elemente nie.
Hoe sal j n String [] array in n set inkry?
So, as words jou set is
Words.addAll(Arrays.asList(arrayWords));
So basies die addAll set funksie, en dan die asList funskie van arrays
Hoe toets ek asof n seker objek n subklas is van n hoofklas?
If (obj indtanceof HeavenlyBody)
So maw met die sleutelwoorde instance of
Wat se vorm van HashMap rn HashSet moet gebruik word as jy ordering soek?
LinkedHashMap en LinkedHashSet
In die voorbeeld van die groceries, het hy n interessante manier gehad om te kyk of iets in stock is en opvolgende berekeninge?
Ja, pass die item na die metode
Assign dan:
StockItem instock = list.getOrDefault(item.getName(),item);//kyk maar net in detail, hier gebeur baie
En dan om te kyk of dit wel in die lys was, vergelyk ons die objekte:
if (inStock!=item)//as dit waar is, was die ding reeds in die lys