Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Xiaomi ha portato sul mercato internazionale la nuova serie Redmi Note, che rappresenta spesso una delle migliori scelte per chi non vuole spendere molto. Il modello 15 Pro+ punta tutto su una batteria capiente e su un ampio display luminoso, sacrificando qualcosa in termini di potenza bruta e velocità di ricarica
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR ha finalmente lanciato il suo nuovo flagship: Magic 8 Pro. Lo abbiamo provato a fondo in queste settimane e ve lo raccontiamo nella nostra recensione completa. HONOR rimane fedele alle linee della versione precedente, aggiungendo però un nuovo tasto dedicato all'AI. Ma è al suo interno che c'è la vera rivoluzione grazie al nuovo Snapdragon 8 Elite Gen 5 e alla nuova MagicOS 10
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Le webcam Insta360 Link 2 Pro e Link 2C Pro sono una proposta di fascia alta per chi cerca qualità 4K e tracciamento automatico del soggetto senza ricorrere a configurazioni complesse. Entrambi i modelli condividono sensore, ottiche e funzionalità audio avanzate, differenziandosi per il sistema di tracciamento: gimbal a due assi sul modello Link 2 Pro, soluzione digitale sul 2C Pro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-11-2012, 23:10   #1
Albsss
Junior Member
 
Iscritto dal: Nov 2012
Messaggi: 12
Ordinamento di un ArrayList

Salve a tutti...sono nuovo nel forum!! Ho deciso di iscrivermi a questo forum perchè o vedo molto serio e completo di tutto e spero che possa risolvere anche qualche mio problema...
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 23:14. Motivo: non avevo finito di scrivere
Albsss è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2012, 14:57   #2
mone.java
Senior Member
 
L'Avatar di mone.java
 
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);
     }
   .........
ma una volta non erano obbligatori i tag per indicare il linguaggio?
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza"
mone.java è offline   Rispondi citando il messaggio o parte di esso
Old 30-11-2012, 08:58   #3
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da mone.java Guarda i messaggi
ma una volta non erano obbligatori i tag per indicare il linguaggio?
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)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 30-11-2012, 08:59   #4
mone.java
Senior Member
 
L'Avatar di mone.java
 
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Sì, una volta, quando la sezione era costantemente controllata dai moderatori.
Significa che sta cadendo in decadenza?? Peccato...
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza"
mone.java è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
La nave elettrica più grande mai ...
Spusu lancia il Wi-Fi Calling: come funz...
Questo robot impara a muovere le labbra ...
iPhone 17 annienta la concorrenza in Cin...
La nuova Xiaomi SU7 batte un record: 4.2...
È possibile copiare i qubit: dei ...
BYD alza ulteriormente l'asticella: batt...
Il nuovo razzo spaziale riutilizzabile c...
L'ex leader di Assassin's Creed porta Ub...
Il razzo spaziale NASA SLS e la capsula ...
Samsung Galaxy S26 Ultra: quattro colora...
AWS investe 1,2 miliardi in Italia. Coin...
La navicella cinese Shenzhou-20 con il f...
I piani Business ed Education di Google ...
Ceres-2 e Lunga Marcia 3B: la Cina falli...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 20:40.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v