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

    Uso di scanner per aggiungere "oggetti" di tipo Persona

    Salve a tutti.
    Non riesco a capire come aggiungere una nuova Persona all'array!

    Vorrei aggiungerla con un semplicissimo scanner ma non riesco proprio a capire dove mettere mani!

    Vi allego il main e la classe Persona!
    Help me!

    codice:
    import java.util.ArrayList;
    public class ArrayListMain {
    
    
        public static void main(String[] args) 
        {
    
    
            ArrayList<Persona> persone=new ArrayList<Persona>();
            
            persone.add(new Persona("Luca", "Rossi"));
            persone.add(new Persona("Stefania", "Verdi"));
            persone.add(new Persona("Jaime", "Neri"));
            persone.add(new Persona("Roberto", "Bianchi"));
    
    
            //per rimuovere l'ultima voce da persone
            persone.remove(persone.size()-1);
            
            for(int i=0;i<persone.size();i++)
            {
                persone.get(i).stampaPersona();
            }    
        }
    }
    codice:
    public class Persona {
    String nome;
    String cognome;
    
    
    
    
    public Persona(String nome, String cognome){
        this.nome=nome;
        this.cognome=cognome;
        
    }
    
    
    public void stampaPersona(){
        System.out.println(this.nome+" " + this.cognome);
    }
    }
    Ultima modifica di LeleFT; 29-11-2016 a 18:56 Motivo: Aggiunti i tag CODE

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da cicciozza Visualizza il messaggio
    Vorrei aggiungerla con un semplicissimo scanner
    Chiedi in input il nome e cognome della persona con 2 next() (o nextLine() ) di Scanner, quindi invochi il costruttore di Persona passando i dati e poi inserisci l'oggetto nella lista.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Tutto risolto!
    Grazie andbin!
    La modifica l'ho fatta nel main:

    Scanner scan=new Scanner(System.in);
    System.out.println("Quante persone vuoi inserire?");
    int dim=scan.nextInt();
    for (int i=0;i<dim;i++){
    System.out.println("inserisci il nome della persona");
    String nom=scan.next();
    System.out.println("adesso inserisci il cognome della persona");
    String cog=scan.next();
    persone.add(new Persona(nom,cog));
    }


    E se a questo punto, volessi scrivere come metodo questo inserimento con Scanner?
    Mi viene difficile perché non ho ancora visto metodi che prendono come argomenti ArrayList, per esempio.

    Suggerimenti illuminanti come quelli di prima?
    Ultima modifica di cicciozza; 29-11-2016 a 19:13

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Quote Originariamente inviata da cicciozza Visualizza il messaggio
    E se a questo punto, volessi scrivere come metodo questo inserimento con Scanner?
    Mi viene difficile perché non ho ancora visto metodi che prendono come argomenti ArrayList, per esempio.
    Lo puoi fare tranquillamente. Io ti consiglierei di fare in modo che il metodo inserisca una sola persona, lascia cioè il ciclo all'esterno (per ora nel main) e richiama il metodo nel loop.

    Il metodo lo puoi fare in vari modi, sia come parametri in ingresso sia come tipo di ritorno.
    In ingresso potresti passare l'ArrayList per aggiungere i passeggeri e lo scanner che hai creato prima (meglio non ricreare un nuovo oggetto Scanner ogni volta che richiami il metodo).
    Ma potresti anche salvare questi due campi come variabili d'istanza della tua classe, quindi dentro al metodo ti riferiresti all'ArrayList e allo Scanner già creati, non avresti bisogno di passare argomenti al metodo.

    Anche il metodo può restituire tipi diversi, potresti aggiungere la persona direttamente nel metodo, quindi dichiarare il metodo come void, o anche leggere i dati in ingresso nel metodo e restituire direttamente la Persona creata.
    In questo caso però potresti/dovresti considerare il caso di restituire null se l'inserimento non va a buon fine (se l'utente non inserisce dati o nel caso in cui i dati per te non siano corretti).
    Il piccolo vantaggio di restituire la Persona potrebbe essere che nel main o da dove richiami il metodo puoi agire direttamente sul reference ricevuto, facendo altro oltre che inserirlo nella lista, che tra l'altro non serve passare al metodo se non si occupa quest'ultimo dell'inserimento.

    Queste sono due possibili soluzioni, immagino ce ne siano altre e forse migliori, comunque per ora non ti fa una grandissima differenza il come farlo, potresti anche provare in tutti e due i modi per acquisire confidenza con il passaggio dei parametri etc.

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.