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();
}
}