Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [Java] Salvataggio su file

    Salve a tutti. il mio problema è questo:
    devo fare un gestore x esami, ho un arrayList con una serie di oggetti studente(nome, cognome, esame). dovrei riuscire a stampare un file txt diverso x ogni tipo d esame, e metterci dentro nome e cognome dei relativi studenti iscritti... come posso fare?
    grazie ciao

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    La via più semplice, secondo me, è quella di ordinare l'ArrayList secondo il campo "Esame" degli oggetti Studente.

    In questo modo puoi scorrere il tuo ArrayList sequenzialmente. Al primo accesso crei un file relativo al primo tipo di esame incontrato e scriverai al suo interno tutti i record che incontrerai nell'arraylist, finchè il tipo di esame non cambia.

    L'idea è abbastanza semplice.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    bella idea! xò come faccio a ordinare l'arrayList secondo quel campo? scusa ma nn sono molto pratico...

  4. #4
    c ho pensato ma nn riesco a capire...come faccio a ordinare un'arrayList a seconda d quel campo???

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Puoi utilizzare, ad esempio, l'interfaccia Comparator.
    Nella tua classe Studente, implementi questa interfaccia ed il metodo compare().
    Segui la documentazione dell'interfaccia Comparator per avere ulteriori dettagli.
    Nel metodo compare() specifichi come deve avvenire il confronto fra due oggetti Studente, imponendo un ordinamento lessicografico sul campo Esame:
    codice:
    public class Studente implements Comparator {
       ...
       public int compare(Object o1, Object o2) {
          Studente s1 = (Studente) o1;
          Studente s2 = (Studente) o2;
          return o1.esame.compareTo(o2.esame);
       }
    }
    Poi passi l'ArrayList al metodo statico sort() della classe Arrays:
    codice:
    ArrayList mioArrayList = ...
    
    // Ordino l'ArrayList
    Arrays.sort( mioArrayList );
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    ma sort non prende in ingresso un arraylist!

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Hai ragione, scusa... mi sono dimenticato un passaggio:
    codice:
    ArrayList mioArrayList = ...
    Studente[] studenti = (Studente[]) mioArrayList.toArray();
    Arrays.sort( studenti );
    A questo punto non fai altro che ricostruirti l'ArrayList a partire dall'array ordinato:
    codice:
    mioArrayList = new ArrayList();
    for (int i=0; i<studenti.length; i++) mioArrayList.add(i, studenti[i]);
    Un modo più veloce non l'ho trovato.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    alla fine ho risolto senza creare file...ho usato un arraylist x risolvere il problema...grazie cmq

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.