Geniální ... snad i všemu rozumím, ale chci se ujistit.
Raději použiju opět procházení seznamu, hrabání se v HashCodu nebo Equals bych evidentně schopný nebyl.
Zadáno bylo takto(ve třídě "Vec"), ale tuto třídu nemáme měnit(naštěstí :) ):
@Override
public boolean equals(Object o) {
if (o instanceof Vec) {
Vec druha = (Vec) o;
return nazev.equals(druha.nazev);
}
return false;
}
@Override
public int hashCode() {
return nazev.hashCode();
}
Ale ještě mám otázečky:K druhé metodě: Změnil jsem seznamVeci.remove(cokoli2); ... protože "String vec" remove nemaže instanci.
Ke třetí metodě: Jsem si raději okomentoval - chápu to správně, když je isSebratelna() false, tak jakoby není???
public Collection<Vec> sebratelneVeci() {
Collection<Vec> ret = new ArrayList<Vec>(); //vytvoření kolekce "ret" = nový seznam
for (Vec v : seznamVeci){ //projdi seznam, hledám v
if (v.isSebratelna()){ //v je sebratelná - kde rozlišuje true nebo false???
ret.add(v); //přidej v do "ret"
}
}
return ret; //vrať kolekci
}
A poslední otázka: Jak bych udělal abych přes konstrukor určil maximum seznamu, například aby seznam mohl mít například nejvýše 5 věcí.//Datový atribut
public int maximum;
//Konstrukor
public Mistnost(int maximum) {
this.maximum = maximum;
}
Snad už přestanu otravovat. Jinak velké díky, M.