Visualizzazione dei risultati da 1 a 5 su 5

Discussione: TreeSet e Liste

  1. #1

    Non stampa tutta la tabella

    Ciao a tutti. Sto cercando di imparare i TreeSet e le liste, ho provato a fare questo esercizio ma mi stampa solo la prima riga della tabella, non riesco a capire dove sbaglio. Cosa ne pensate?
    Grazie a tutti...

    codice:
    import java.util.*;
    
    public class Spesa {
    	private List<Alimenti> dati=new ArrayList<Alimenti>();
    	
    	Spesa(){
    		TreeSet<Alimenti> blocknotes=new TreeSet<Alimenti>();
    		Alimenti frutta=new Alimenti();
    		Alimenti colazione=new Alimenti();
    		Alimenti pranzo=new Alimenti();
    		
    		/*riempio la tabella con gli alimenti*/
    		frutta.add(new String("Mela"));
    		frutta.add(new String("Arancia"));
    		frutta.add(new String("Melone"));
    		
    		colazione.add(new String("Latte"));
    		colazione.add(new String("Biscotti"));
    		colazione.add(new String("Caffe'"));
    		
    		pranzo.add(new String("Pasta"));
    		pranzo.add(new String("Sugo"));
    		pranzo.add(new String("Vino"));
    		
    		blocknotes.add(frutta);
    		blocknotes.add(colazione);
    		blocknotes.add(pranzo);
    		
    		dati=new ArrayList<Alimenti>(blocknotes);
    	}
    	
    	public String toString(){
    		
    		StringBuilder build=new StringBuilder();
    		for(int i=0;i<dati.size();i++){
    									Alimenti row=dati.get(i);	
    									build.append(i+1+" "+row.toString()+"\n");/*salva la riga corrente in append*/
    	}
    	return build.toString();/*ritorna la tabella*/
    	}
    	
    	public static void main(String[] args){
    		Spesa spesa=new Spesa();
    		System.out.println(spesa.toString());
    	} 
    	
    	/*InnerClass */
    	class Alimenti implements Comparable<Alimenti>{
    			private List<Object> alimentari=new ArrayList<Object>();
    			
    			/*aggiunge un elemento alla tabella*/
    			public void add(Object o){
    				alimentari.add(o);
    			}
    			
    			/*ritorna un elemento in posizione i*/
    			public void get(int i){
    				alimentari.get(i);
    			}
    			
    			/*ritorna lo stato di Alimenti*/
    			public String toString(){
    				String str=" ";
    				int i=0;
    				for(Object y:alimentari){/*ripeti fino a quando gli alimenti non sono finiti*/
    					str+=(alimentari.get(i)+" ");
    					i++;
    				}
    				return str;
    				
    			}
    
    			@Override
    			public int compareTo(Alimenti o) {
    				// TODO Auto-generated method stub
    				return 0;
    			}
    	} 
    }
    il risultato che mi da e' questo:
    codice:
    1  Mela Arancia Melone /*ma dove sono le altre righe della tabella?*/

  2. #2
    ho sbagliato a scrivere get, ma comunque l'errore rimane, non so come fare a stampare le altre righe della tabella.
    codice:
    /*ritorna un elemento in posizione i*/
    			public Object get(int i){
    				return alimentari.get(i);
    			}

  3. #3
    Ho trovato l'errore, cercando e ricercando su internet l'ho trovato, non essendo esperto pensavo che l'errore era nell'uso di dati, invece era in CompareTo.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da boy123456
    Ho trovato l'errore, cercando e ricercando su internet l'ho trovato, non essendo esperto pensavo che l'errore era nell'uso di dati, invece era in CompareTo.
    Sì, il problema era nel metodo compareTo(), ma il problema più grosso è questo:

    codice:
    // TODO Auto-generated method stub
    Ti stai facendo scrivere il codice dall'IDE e questo, 99 volte su 100, è il problema principale.
    Impara a scriverlo a mano il codice. L'IDE va bene per l'highlighting del codice, per le features di controllo del sorgente e altre cose. Per il preconfezionamento del codice è il disastro.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Originariamente inviato da LeleFT
    Sì, il problema era nel metodo compareTo(), ma il problema più grosso è questo:

    codice:
    // TODO Auto-generated method stub
    Ti stai facendo scrivere il codice dall'IDE e questo, 99 volte su 100, è il problema principale.
    Impara a scriverlo a mano il codice. L'IDE va bene per l'highlighting del codice, per le features di controllo del sorgente e altre cose. Per il preconfezionamento del codice è il disastro.


    Ciao.
    Grazie mille per il consiglio .

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.