
Java - seznam
Zdravím,
mořím už se s tím několik hodin, a nemohu se dobrat žádného řešení.
Tak bych prosil o pomoc, pro Vás to bude nejspíše prkotina.
Mám 2 třídy.
První je hotová: Vec - má metody: getNazev(), jeSebratelna(), equals(), hashCode().
A my máme naprogramovat další třídu: Mistnost a následující metody.
* 1) Vlož věc do místnosti(Vec vec)
* - pokud již je stejné jméno - nepřidávat, jinak ano
* 2) Odeber věc z místnosti(String nazevVeci)
* - vrať instanci, pokud věc není tak vrať null
* 3) public Collerction<Vec> sebratelneVeci ()
* - vrací seznam věcí, které lze v místnosti sebrat - ne všechny!
Vkládám kod s mými marnými pokusy:
import java.util.Collection;
import java.util.ArrayList;
public class Mistnost
{
//== Datové atributy (statické i instancí)======================================
public ArrayList<Vec> seznamVeci = new ArrayList<Vec>();
public String nazevMistnosti;
//== Konstruktory a tovární metody =============================================
public Mistnost(String nazevMistnosti) {
this.nazevMistnosti = nazevMistnosti;
}
//== Nesoukromé metody (instancí i třídy) ======================================
public boolean vlozVec(Vec vec) {
for (Vec cokoli: seznamVeci) { //projdi seznam
if(vec.getNazev().equals(cokoli.getNazev())) { //porovnej název s názvama v seznamu
return false; //pokud se rovnají, tak nepřijdávej
}
else { //jinak - přidej do seznamu
seznamVeci.add(vec);
return true;
}
}
return true; //k tomu kroku nikdy nedojde???K čemu je?
}
public Vec odeberVec(String vec) {
for (Vec cokoli2: seznamVeci) {
if (vec.getNazev().equals(vec)) { //nefunguje vec.getNazev, proč???(nepřeloží překladač)
seznamVeci.remove(vec);
return vec;
}
return null;
}
}
public Collection<Vec> sebratelneVeci() {
return seznamVeci; //vrací celý seznam, jak jen ty které lze sebrat???
}
//== Soukromé metody (instancí i třídy) ========================================
}
Předem díky, uvítám vysvětlení jako tupce, M.