Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Problema ArrayList()
Forum - Java - Problema ArrayList()

Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Segnala al moderatore
Postato alle 16:03
Giovedė, 22/07/2010
Salve, ho implementato una classe Studente con interfaccia Comparable,lo studente ha come attributi : nome,cognome,matricola; grazie al metodo compareTo() e il metodo statico Collections.sort() ordino la lista in ordine alfabetico(ArrayList()) , adesso dovrei stampare la lista in un file di testo ma nnon so come fare, mi potreste aiutare? so come crare il flusso di stream ma.....
ecco il codice
package esameinfo;

import java.io.*;
import java.util.*;
import java.util.ArrayList;

public class Studente implements Comparable<Studente> {

    String nome, cognome;
    int metr;

    public Studente(String c, String n, int m) {

        this.cognome = c;
        this.nome = n;
        this.metr = m;
    }

    public int compareTo(Studente x) {

        Studente p = (Studente) x;

        return cognome.compareTo(p.cognome);
    }

    @Override
    public String toString() {

        return (this.cognome + " " + this.nome + "  matricola " + String.valueOf(metr));
    }

    public static void main(String[] args) throws IOException {

        InputStreamReader in = new InputStreamReader(System.in);
        BufferedReader tast = new BufferedReader(in);

        List<Studente> stud = new ArrayList<Studente>();
        String n, c, m;

        while (true) {

            System.out.println("inserire il cognome");
            c = tast.readLine();

            if (c.equals("")) {
                break;
            } else {

                System.out.println("\ninserire il nome");
                n = tast.readLine();
                System.out.println("\ninserire matricola");
                m = tast.readLine();

                Studente x = new Studente(c, n, Integer.parseInt(m));
                stud.add(x);
            }

        }
        System.out.println(stud);

        Collections.sort(stud);

        System.out.println(stud);

        Object b = stud.toArray();// č giusto cosi?? poi con fout.write(b.toString);
                                  // nn credo sia giusto xk nn funziona.
        FileWriter f = new FileWriter("out.txt");
        PrintWriter fout = new PrintWriter(f);

        

    }
}
ho risolto il prob..

Ultima modifica effettuata da Bonny il 22/07/2010 alle 19:02
PM
Avatar
matteo88roma (Normal User)
Rookie


Messaggi: 25
Iscritto: 15/12/2008

Up
1
Down
V
Segnala al moderatore
Postato alle 5:59
Sabato, 28/08/2010
Nel tuo caso, in quanto non vedo getters per le variabili d'istanza della classe Studente, presuppongo tu voglia stampare la stringa ritornata dal metodo toString.
In quel caso:

Codice sorgente - presumibilmente Java

  1. ArrayList<Studente> studenti = new ArrayList<Studente>();
  2. //Ammettiamo che siano stati inseriti dei valori all'interno dell'ArrayList
  3.  
  4. BufferedWriter bw = new BufferedWriter(new FileWriter("fileName"));
  5.  
  6. for (Studente s : studenti ) {
  7.         bw.write(s.toString());
  8.         bw.newLine();
  9. }
  10.  
  11. bw.flush();
  12. bw.close();



Per ulteriori informazioni: http://download.oracle.com/javase/6/docs/api/java/io/Buffe ...

Spero di esserti stato d'aiuto :k:

PM