Poichè fra pochi giorni ho l'esame
Testo nascosto, fai click qui per vederlo
- Codice: Seleziona tutto
public class Abbigliamento {
private Map <String, Modello> modelli = new HashMap <String, Modello>();
private Map <String, Colore> colori = new HashMap <String, Colore>();
private Map <String, Materiale> materiali = new HashMap <String, Materiale>();
private Map <String, Capo> capi = new HashMap <String, Capo>();
private Map <String, Collezione> collezioni = new HashMap <String, Collezione>();
public void leggiFile(String fileName){
try {
BufferedReader br = new BufferedReader (new FileReader (fileName));
String linea;
while ((linea = br.readLine()) != null)
{
StringTokenizer st = new StringTokenizer (linea, ";");
String tipo = st.nextToken().trim();
if (tipo.toUpperCase().equals("MOD"))
{
String nome = st.nextToken().trim();
double costo = Double.parseDouble(st.nextToken().trim());
double quantita = Double.parseDouble(st.nextToken().trim());
modelli.put(nome, new Modello(nome,costo,quantita));
}
else if (tipo.toUpperCase().equals("COL"))
{
String nome = st.nextToken().trim();
colori.put(nome, new Colore(nome));
}
else if (tipo.toUpperCase().equals("MAT"))
{
String nome = st.nextToken().trim();
double costo = Double.parseDouble(st.nextToken().trim());
materiali.put(nome, new Materiale(nome,costo));
}
else if (tipo.toUpperCase().equals("CAP"))
{
String nome = st.nextToken().trim();
Modello mod = modelli.get(st.nextToken().trim());
Materiale mat = materiali.get(st.nextToken().trim());
Colore col = colori.get(st.nextToken().trim());
capi.put(nome, new Capo(mod, mat, col));
}
else if (tipo.toUpperCase().equals("COL"))
{
String nome = st.nextToken().trim();
collezioni.put(nome, new Collezione ());
String capo;
while ((capo = st.nextToken().trim()) != null)
collezioni.get(nome).add(capi.get(capo));
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Modello getModello(String name){
return modelli.get(name);
}
public Colore getColore(String name){
return colori.get(name);
}
public Materiale getMateriale(String name){
return materiali.get(name);
}
public Capo getCapo(String name){
return capi.get(name);
}
public Collezione getCollezione(String name){
return collezioni.get(name);
}
}
Il programma sembra non contenere errori e testandolo nel main funziona, fino al metodo getCollezione ()
Testo nascosto, fai click qui per vederlo
- Codice: Seleziona tutto
Writer w = new FileWriter ("file.txt");
w.write ("MOD;giacca;66;6.4\n" +
"MOD;scarpe;20.4;5\n" +
"COL;giallo\n" +
"COL;blu\n" +
"MAT;camoscio;12\n" +
"MAT;pelle;99\n" +
"CAP;capo1;giacca;pelle;giallo\n" +
"CAP;capo2;scarpe;pelle;giallo\n" +
"CAP;capo3;scarpe;camoscio;blu\n" +
"COL;col1;capo1;capo3\n" +
"COL;col2;capo1;capo2;capo3\n");
w.close();
Abbigliamento a = new Abbigliamento ();
a.leggiFile("file.txt");
Collezione collez1 = a.getCollezione("col1");
List <Capo> cap1 = new LinkedList <Capo> (collez1.trova(a.getMateriale("pelle")));
for (Capo c : cap1)
System.out.println(c.toString());
la classe Collezione è fatta così:
Testo nascosto, fai click qui per vederlo
- Codice: Seleziona tutto
public class Collezione {
private List <Capo> capi = new LinkedList <Capo> ();
public void add(Capo capo) {
capi.add(capo);
}
public Collection trova(Colore colore) {
Collection<Capo> trovati = new LinkedList<Capo> ();
for (Capo c : capi)
{
if (c.getColore().getNome().equals(colore.getNome()))
trovati.add(c);
}
return trovati;
}
Grazie a tutti




