Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [Java] Uso arraylist

    Salve ho fatto un piccolo programma per capire come funziona la classe ArrayList. Ho una struttura dati che contiene il nome di una persona e la sua etā, il ciclo di riempimento della struttura termina quando al campo etā inserisco il valore zero. Il programma a quanto pare funziona bene, fino a quando provo a stampare la struttura precedentemente riempita. Spero che qualcuno vorrā aiutarmi, comunque questo č il codice
    , premetto che uso la sdk 1.4
    codice:
    import java.util.*;
    import javax.swing.*;
    
    class dati
    {
    	dati(String n, int v)
    	{
    		int voto;
    		String nome;
    		voto=v;
    		nome=n;
    	}
    }
    
    public class vettdim
    {
    
    	public static void main (String[] args)
    	{
    		ArrayList a = new ArrayList();
    
    		int x=0;
    		String y;
    
    		y = JOptionPane.showInputDialog("Inserire etā");
    		x = Integer.parseInt(y);
    
    		while(x!=0)
    		{
    			y = JOptionPane.showInputDialog("Inserire nome");
    			a.add(new dati(y,x));
    			y = JOptionPane.showInputDialog("Inserire etā");
    			x = Integer.parseInt(y);
    		}
    
    		for(int i=0;i<=a.size();i++)
    		{
    			System.out.println(a.get(i));
    		}
    
    
    		System.exit(0);
    	}
    }

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Innanzitutto devi dichiarare voto e nome come campi della classe Dati e non come variabililocali del costruttore:

    codice:
    class dati{
    	int voto;
    	String nome;
    
    	dati(String n, int v){
    		voto=v;
    		nome=n;
    	}
    }
    Poi devi definire il metodo toString per la classe Dati, che il metodo println invocherā sulgli oggetti passati come argomento. Ad esempio puoi aggiungere questo metodo alla classe Dati:

    codice:
    public String toString(){
         return "Nome: " + nome + " - voto: " + voto;
    }
    Facendo queste modifiche dovrebbe funzionare.

    L'istruzione System.exit(0); č inutile

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  3. #3
    Grazie ora funziona, ma non ho capito perchč č stato necessario costruire il metodo toString, per visualizzare i dati contenuti nell'arraylist, non c'č un metodo giā definito che poteva fare questo? Per quanto riguarda System.exit(0), se non lo metto il programma non ci chiude.

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    se non sovrascrivi toString lui stampa il tipo dell'oggetto e l'indirizzo di mem

  5. #5
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Originariamente inviato da GiulioCesare
    Per quanto riguarda System.exit(0), se non lo metto il programma non ci chiude.
    Si, ho visto che hai usato il JOptionPane, quindi c'p anche il thread dell'interfaccia grafica che va chiuso.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

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.