rossonero92
Nuovo Utente
- Messaggi
- 1
- Reazioni
- 0
- Punteggio
- 24
oridinare file senza caricare elementi in memoria!(quindi no vettori..) fiat
punto
1200
Ferrari
gto
2400
alfa
giulietta
1400
meclaren
mercedes
500
ho questo file(ciascuna macchina è definita per costruttore,modello e chilometri) devo ordinarlo gia ho creato tutti i metodi di lettura e stampa,la traccia dice ''Scrivere un programma per l’ordinamento del file rispetto ai chilometri percorsi. Evitare di caricare TUTTE le auto in memoria.''
dunque il metodo che non mi viene è quello di ordinamento..io l ho fatto cosi:
codice:
public void printFileOrdinato(PrintStream p) throws IOException
{
Scanner s=new Scanner(new File(file));
automobile a=automobile.leggi(s);//questo punta alla prima ''terna del file''
automobile b=automobile.leggi(s);//questo alla seconda
while(a!=null && b!=null) {
if(a.getkm()<b.getkm())
{ a.stampa(p);
a=automobile.leggi(s);
}
else
{ b.stampa(p);
b=automobile.leggi(s);
}
}
if(a==null)
{
while(b!=null)
{
b.stampa(p); b=automobile.leggi(s);
}
}
else if(b==null)
{
while(a!=null)
{
a.stampa(p);
a=automobile.leggi(s);
}
}
}
punto
1200
Ferrari
gto
2400
alfa
giulietta
1400
meclaren
mercedes
500
ho questo file(ciascuna macchina è definita per costruttore,modello e chilometri) devo ordinarlo gia ho creato tutti i metodi di lettura e stampa,la traccia dice ''Scrivere un programma per l’ordinamento del file rispetto ai chilometri percorsi. Evitare di caricare TUTTE le auto in memoria.''
dunque il metodo che non mi viene è quello di ordinamento..io l ho fatto cosi:
codice:
public void printFileOrdinato(PrintStream p) throws IOException
{
Scanner s=new Scanner(new File(file));
automobile a=automobile.leggi(s);//questo punta alla prima ''terna del file''
automobile b=automobile.leggi(s);//questo alla seconda
while(a!=null && b!=null) {
if(a.getkm()<b.getkm())
{ a.stampa(p);
a=automobile.leggi(s);
}
else
{ b.stampa(p);
b=automobile.leggi(s);
}
}
if(a==null)
{
while(b!=null)
{
b.stampa(p); b=automobile.leggi(s);
}
}
else if(b==null)
{
while(a!=null)
{
a.stampa(p);
a=automobile.leggi(s);
}
}
}
Ultima modifica: