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

    Classe impiegati, controllo id arrayList, metodo per il reinserimento valore non valido

    Ciao ragazzi!
    Salto la parte della creazione di una classe Impiegato gi� creata e vado al testo del problema:

    "Si realizzi poi una classe di collaudo che faccia in ordine le seguenti cose:

    leggere interattivamente (input da tastiera) un numero arbitrario di impiegati.
    Nel caso in cui l�utente cerchi di inserire due volte un impiegato con stesso id, il programma deve restituire un messaggio di errore (il programma non deve terminare, ma continuare senza (ri-)considerare l�impiegato in questione);
    stampare a video la lista degli impiegati assunti prima di un certo anno letto in input."Con il contains messo li dove potete vedere nei commenti, non riesco a fargli capire che devo fargli controllare solo gli id degli impiegati che ho creato. (HELP 1).

    Come potrei riscrivere il:
    if(id==000) ""oppure l'id che hai inserito � gi� stato inserito""
    System.out.println("ID gi� inserito, riprova con un altro") "senza farlo uscire dall'inserimento"?
    exit=true;

    Vi lascio il codice
    Thanks





    codice:
    import java.util.ArrayList;
    import java.util.Scanner;
    
    
    public class ImpiegatoMain {
    
    
    	public static void main(String[] args) {
    
    
    		ArrayList<Impiegato>listaImpiegati=new ArrayList<Impiegato>();
    
    
    		System.out.println("CIAO, inserisci i dati per gli impiegati. Digita X sull'ID per uscire");
    
    
    		Scanner scan=new Scanner(System.in);
    		String elemento;
    		boolean exit=false;
    
    
    		try{
    
    
    			while(exit!=true){
    
    
    				System.out.println("inserisci ID dell'impiegato");
    				int id=scan.nextInt();	
    				if(id==000)   
    					exit=true;
    				else{
    					/*  QUI SICURAMENTE VA FATTA LA MODIFICA! :D
    					 *  non saprei come fargli controllare tutti gli id, di tutti gli Impiegati gi� inseriti
    					 *  
    					 *  
    					 *
    					 *		if(listaImpiegati.contains(id))
    					 *		{
    							System.out.println("Errore, ID gia presente");
    							} else {
    							System.out.println("");
    					 */			
    
    
    					System.out.println("inserisci il NOME ");
    					String nome=scan.next();
    					System.out.println("inserisci il COGNOME  dell'impiegato");
    					String cognome=scan.next();
    					System.out.println("inserisci ANNO assunzione dell'impiegato");
    					String anno=scan.next();
    
    
    					Impiegato nuovo=new Impiegato(id,nome,cognome,anno);
    					listaImpiegati.add(0,nuovo);
    				}
    			}
    
    
    		}catch(NumberFormatException e){
    			System.out.println("Input non valido: ritenta con un id valido...");
    		}
    
    
    		System.out.println("FINE");
    
    
    		for ( Impiegato elementi: listaImpiegati )
    
    
    			System.out.println(elementi.id+" " +elementi.nome +" "+ elementi.cognome+ " "+elementi.anno);
    
    
    	}
    
    
    }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Se vuoi far uscire quando l'utente ha inserito un id 0, basta appunto

    if (id == 0)

    (nota: 000 è una costante ottale che vale comunque 0, non c'è differenza).

    Se vuoi verificare che nessun Impiegato nella listaImpiegati abbia quel id allora:
    - ciclo sulla lista
    - per ciascun oggetto Impiegato, get del suo id e confronto con quello inserito.


    Tutto questo meglio magari in un metodo apposito. E meglio ancora se il design della tua classe fosse quello di non fare "tutto" nel main ma di usare una istanza di ImpiegatoMain in modo da tenere la lista di impiegati come "stato" dell'oggetto.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.