Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di angelo85ct
    Registrato dal
    Dec 2007
    Messaggi
    322

    ricerca in un linkedlist

    salve ragazzi, avrei un gosso problema:
    ho un linkedlist dove ho caricato dei dati persenti in un file txt
    dati del tipo id;operazione; valuta
    e fin qui tutto apposto.
    il mio problema consiste nel trovare un metodo che mi scorre tutto il vettore e mi sommi tutte le operazioni di un determinato id,anche se presente piu volte.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,280

    Re: ricerca in un linkedlist

    Originariamente inviato da angelo85ct
    salve ragazzi, avrei un gosso problema:
    ho un linkedlist dove ho caricato dei dati persenti in un file txt
    dati del tipo id;operazione; valuta
    e fin qui tutto apposto.
    il mio problema consiste nel trovare un metodo che mi scorre tutto il vettore e mi sommi tutte le operazioni di un determinato id,anche se presente piu volte.
    E quale è il problema? Innanzitutto nella LinkedList hai sicuramente inserito N oggetti di una certa tua classe che contiene i dati che hai indicato.
    Scandisci la LinkedList, prelevi gli oggetti uno alla volta e per ognuno prendi il 'id', se è quello che ti interessa, allora prendi gli altri dati e fai i calcoli che devi fare.

    Di più non ti saprei dire perché, ovviamente, non so come è fatta la tua classe e cosa devi fare di preciso.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di angelo85ct
    Registrato dal
    Dec 2007
    Messaggi
    322
    grazie, ma fino a qui ci sono arrivato pure io, il mio problema è :come devo implementare il codice per trovare lgi id uguali e sommare tutte le operazioni di un determinato tipo per quell'id.

    grazie.....

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,280
    Originariamente inviato da angelo85ct
    grazie, ma fino a qui ci sono arrivato pure io, il mio problema è :come devo implementare il codice per trovare lgi id uguali e sommare tutte le operazioni di un determinato tipo per quell'id.
    Puoi almeno spiegare meglio come è fatta la tua classe??? La sfera magica di cristallo non l'ho ancora trovata nemmeno su amazon....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it L'avatar di angelo85ct
    Registrato dal
    Dec 2007
    Messaggi
    322
    questa è la mia classe:

    public class movimenti{
    public int id;
    public char tipoper;
    public float valuta;

    public movimenti(int id, char tipoper, float valuta){
    this.id=id;
    this.tipoper=tipoper;
    this.valuta=valuta;
    }

    public void stampa1(){
    System.out.println(this.id+" - "+this.tipoper+" "+this.valuta);
    }



    public String toString(){
    return "ID: [" + id + "]\toperazione: " + tipoper+"\t"+valuta; }


    questa invece è la funzione relativa al caricamento dei dati nella linkedlist:
    float valuta=0;
    int id=0;
    String nome, cognome;
    boolean trovato=true;
    LinkedList pippo = new LinkedList();
    //metodo per la lettura del secondo file
    char tipoper='x';
    try{
    BufferedReader tex=new BufferedReader(new FileReader("movimenti.txt"));
    StringTokenizer cl=new StringTokenizer(tex.readLine(), " ");//separa tra gli spazi
    while (cl.hasMoreTokens()){
    StringTokenizer cl1=new StringTokenizer(cl.nextToken(), ";");
    if(cl1.hasMoreTokens()==true)
    id=Integer.parseInt(cl1.nextToken());
    if(cl1.hasMoreTokens()==true)
    tipoper=cl1.nextToken().charAt(0);
    if(cl1.hasMoreTokens()==true)
    valuta=Float.parseFloat(cl1.nextToken());
    movimenti t=new movimenti(id,tipoper,valuta);
    t.stampa1();
    pippo.add(t);
    }
    }
    catch(FileNotFoundException e)
    {trovato=false;}
    catch(IOException e)
    {System.out.println ("Errore lettura file "); }
    if (!trovato)
    System.out.println("FILE clienti.txt NON TROVATO");
    else
    System.out.println("\nFILE clienti.txt CARICATO CON SUCCESSO \n\n");
    Iterator g =pippo.iterator();
    while(g.hasNext()){
    System.out.println(((movimenti)g.next()).toString( ));
    }

    spero di essere stato chiaro

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,280
    Originariamente inviato da angelo85ct
    questa è la mia classe:

    public class movimenti{
    public int id;
    public char tipoper;
    public float valuta;

    public movimenti(int id, char tipoper, float valuta){
    this.id=id;
    this.tipoper=tipoper;
    this.valuta=valuta;
    }

    public void stampa1(){
    System.out.println(this.id+" - "+this.tipoper+" "+this.valuta);
    }



    public String toString(){
    return "ID: [" + id + "]\toperazione: " + tipoper+"\t"+valuta; }
    È un obbrobrio ..... inizia a mettere i campi come 'private' e a mettere degli appositi metodi 'getter'. Inizia anche a seguire le convenzioni di denominazione. Io avrei creato una classe Movimento (nota, M maiuscola).

    Originariamente inviato da angelo85ct
    questa invece è la funzione relativa al caricamento dei dati nella linkedlist:
    float valuta=0;
    int id=0;
    String nome, cognome;
    boolean trovato=true;
    LinkedList pippo = new LinkedList();
    //metodo per la lettura del secondo file
    char tipoper='x';
    try{
    BufferedReader tex=new BufferedReader(new FileReader("movimenti.txt"));
    StringTokenizer cl=new StringTokenizer(tex.readLine(), " ");//separa tra gli spazi
    while (cl.hasMoreTokens()){
    StringTokenizer cl1=new StringTokenizer(cl.nextToken(), ";");
    if(cl1.hasMoreTokens()==true)
    id=Integer.parseInt(cl1.nextToken());
    if(cl1.hasMoreTokens()==true)
    tipoper=cl1.nextToken().charAt(0);
    if(cl1.hasMoreTokens()==true)
    valuta=Float.parseFloat(cl1.nextToken());
    movimenti t=new movimenti(id,tipoper,valuta);
    t.stampa1();
    pippo.add(t);
    }
    }
    catch(FileNotFoundException e)
    {trovato=false;}
    catch(IOException e)
    {System.out.println ("Errore lettura file "); }
    if (!trovato)
    System.out.println("FILE clienti.txt NON TROVATO");
    else
    System.out.println("\nFILE clienti.txt CARICATO CON SUCCESSO \n\n");
    Iterator g =pippo.iterator();
    while(g.hasNext()){
    System.out.println(((movimenti)g.next()).toString( ));
    }
    Più o meno idem come sopra .....

    Ecco un esempio ma proprio abbozzato:

    codice:
    LinkedList movimenti = new LinkedList();
    
    ....
    
    Iterator it = movimenti.iterator ();
    float tot = 0.0f;
    
    while (it.hasNext ())
    {
        Movimento m = (Movimento) it.next ();
    
        if (m.getId () == ......)
        {
            tot += m.getValuta ();
        }
    }
    Una cosa del genere. E magari inizia anche ad usare i "generics" (esistono da almeno 3 anni in Java).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it L'avatar di angelo85ct
    Registrato dal
    Dec 2007
    Messaggi
    322
    ti ringarzio, ora provo a implementare il codice.
    un'ultima cosa, per caso sai come posso fare a stampare tutti gli id con la loro somma di tutte le operazioni di un determinato tipo in un file binario.
    grazie

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 © 2025 vBulletin Solutions, Inc. All rights reserved.