|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Nov 2012
Messaggi: 12
|
Ordinamento di un ArrayList
Salve a tutti...sono nuovo nel forum!!
![]() ![]() allora io ho fatto un programmino banale in java la cui traccia è: un file denominato "auto" contiene le informazioni sulle auto disponibili in una concessionaria di auto usate. Ogni auto è rappresentata dalle seguenti informazioni: costruttore modello cilindrata alimentazione anno di prima immatricolazione costo Scrivere un programma per l'ordinamento del file rispetto all'anno di prima immatricolazione. Ora io ho creato le tre classi (Auto,Gestore e Tester) come di seguito: CLASSE AUTO: import java.io.PrintStream; import java.util.Scanner; public class Auto implements Comparable<Auto>{ public Auto(String costruttore,String modello,int cilindrata,String alimentazione,String annoImm,int costo){ this.costruttore = costruttore; this.modello = modello; this.cilindrata = cilindrata; this.alimentazione = alimentazione; this.annoImm = annoImm; this.costo = costo; } public String getCostruttore() { return costruttore; } public void setCostruttore(String costruttore) { this.costruttore = costruttore; } public String getModello() { return modello; } public void setModello(String modello) { this.modello = modello; } public String getAlimentazione() { return alimentazione; } public void setAlimentazione(String alimentazione) { this.alimentazione = alimentazione; } public int getCilindrata() { return cilindrata; } public void setCilindrata(int cilindrata) { this.cilindrata = cilindrata; } public String getAnnoImm() { return annoImm; } public void setAnnoImm(String annoImm) { this.annoImm = annoImm; } public int getCosto() { return costo; } public void setCosto(int costo) { this.costo = costo; } public static Auto read(Scanner sc){ if(!sc.hasNext())return null; String costruttore = sc.nextLine(); if(!sc.hasNext())return null; String modello = sc.nextLine(); if(!sc.hasNext())return null; String cilindrata = sc.nextLine(); if(!sc.hasNext())return null; String alimentazione = sc.nextLine(); if(!sc.hasNext())return null; String annoImm = sc.nextLine(); if(!sc.hasNext())return null; String costo = sc.nextLine(); return new Auto(costruttore,modello,Integer.parseInt(cilindrata),alimentazione,annoImm,Integer.parseInt(costo)); } @Override public String toString() { return "Auto [costruttore=" + costruttore + ", modello=" + modello + ", alimentazione=" + alimentazione + ", annoImm=" + annoImm + ", cilindrata=" + cilindrata + ", costo=" + costo + "]"; } public void print(PrintStream ps){ ps.println(costruttore); ps.println(modello); ps.println(cilindrata); ps.println(alimentazione); ps.println(annoImm); ps.println(costo); } public int compareTo(Auto a) { return annoImm.compareTo(a.getAnnoImm()); } private String costruttore,modello,alimentazione,annoImm; private int cilindrata,costo; } GESTORE: import java.io.PrintStream; import java.util.*; public class Gestore { public Gestore(Scanner aut){ ArrayList<Auto> auto = new ArrayList<Auto>(); Auto a = Auto.read(aut); while(a != null){ auto.add(a); a = Auto.read(aut); } } public void printConcessionaria(PrintStream ps){ ps.println("CONCESSIONARIA"); for(Auto a : auto){ a.print(ps); ps.println(" ---- "); } } public void rAnnoImm(PrintStream ps){ ps.println("immettere anno di immatricolazione: "); Scanner i = new Scanner(System.in); String s = i.nextLine(); for(Auto a : auto){ if(a.getAnnoImm().equalsIgnoreCase(s)){ ps.println(a.toString()); } } } private ArrayList<Auto>auto; } TESTER: import java.io.File; import java.io.FileNotFoundException; import java.io.PrintStream; import java.util.Scanner; public class Tester { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub boolean uscita = true; PrintStream ps = new PrintStream(System.out); Scanner in = null; Scanner aut = null; try{ aut = new Scanner(new File("Auto.txt")); } catch(FileNotFoundException e){ ps.println("FILE NON TROVATO"); } Gestore g = new Gestore(aut); in = new Scanner(System.in); while(uscita){ menu(ps); int n = in.nextInt(); if(n < 1 || n > 2){ ps.println("errore"); } switch(n){ case 1 : g.rAnnoImm(ps); case 2 : uscita = false; } } } public static void menu(PrintStream ps){ ps.println("Ricerca"); ps.println("1) Anno di prima immatricolazione: "); ps.println("2) Uscire dal programma"); } } ora non so come procedere con l'ordinamento del file....ho provato con il collections.sort ma non riesco nell'intento...spero qualcuno possa aiutarmi...grazie Ultima modifica di Albsss : 28-11-2012 alle 22:14. Motivo: non avevo finito di scrivere |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
|
Quali file devi ordinare? Cmq se intendi ordinare le auto dentro al Gestore devi fare ciò:
Codice:
public class Gestore { public Gestore(Scanner aut){ ArrayList<Auto> auto = new ArrayList<Auto>(); Auto a = Auto.read(aut); while(a != null){ auto.add(a); a = Auto.read(aut); } Collections.sort(auto); } .........
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza" |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Sì, una volta, quando la sezione era costantemente controllata dai moderatori.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
|
Quote:
![]()
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza" |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:53.