ecco a te. ovviamente non è un codice ottimale, infatti devi implementare diversi controlli aggiuntivi.
purtroppo l'ho scritto di fretta e nn ho potuto fare di più ^^
codice:/** * @author Naruto 92 */ public class Persona { private String nome, cognome; private int annoNascita; public Persona(String ilNome, String ilCognome, int lAnnoNascita){ /* * da implementarsi i controlli come: stringa vuota o anno non valido */ nome=ilNome; cognome=ilCognome; annoNascita=lAnnoNascita; } /* * da implementarsi i metodi setter e getter mancanti */ public int getAnnoNascita(){ return annoNascita; } public void stampaDettagli(){ System.out.println("- " + cognome + " " + nome + " nato\\a nel " + annoNascita); } }codice:import java.util.*; import java.io.*; /** * @author Naruto 92 */ public class Elenco { private Vector<Persona> elenco; public Elenco(){ elenco=new Vector<Persona>(0); } public void acquisisciPersone(){ String nome, cognome; int anno; long index=0; boolean flag=false; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); System.out.println("> Inserimento delle persone nell'elenco. Scrivi EXIT nel campo Cognome per uscire"); while(!flag){ System.out.println("\n> Inserimento della persona numero " + (++index) + ":"); System.out.print("> Inserisci il Cognome: "); cognome=br.readLine(); flag=cognome.equalsIgnoreCase("EXIT"); if(flag){ System.out.println("\n> Acquisizione terminata.\n"); break; } System.out.print("> Inserisci il Nome: "); nome=br.readLine(); System.out.print("> Inserisci il l'Anno di Nascita: "); anno=Integer.parseInt(br.readLine()); elenco.add(new Persona(nome, cognome, anno)); } }catch(Exception e){ //da gestirsi meglio; gestire eccezioni come NumberFormatException e IOException e.printStackTrace(); } } public void ordinaElenco(){ for(int i=0; i<elenco.size()-1; i++){ for(int j=i+1; j<elenco.size(); j++){ if(elenco.get(i).getAnnoNascita()>elenco.get(j).getAnnoNascita()){ Persona tmp=elenco.get(i); elenco.set(i, elenco.get(j)); elenco.set(j, tmp); } } } } public void stampaElenco(){ System.out.println("> Stampa dell'elenco: "); for(int i=0; i<elenco.size(); i++){ elenco.get(i).stampaDettagli(); } } public static void main(String args[]){ Elenco e=new Elenco(); e.acquisisciPersone(); e.ordinaElenco(); e.stampaElenco(); } }

