Visualizzazione dei risultati da 1 a 6 su 6

Discussione: problema TreeSet

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    5

    problema TreeSet

    Salve a tutti, sono nuovo, e vi scrivo perchè ho un problema.
    Per un esame devo fare un progetto che consisterebbe in una specie di blog...
    Il mio problema è questo, ho un oggetto TreeSet che vorrei contenesse tanti oggetti commento relativi a quell'articolo, il problema è che quando vado a vedere questo oggetto dentro c'è ne solo 1. Se con lo stesso procedimento invece aggiungo delle stringhe non mi crea problemi e me le visualizza tutte. Qualcuno mi può dare una mano per favore... vi prego il tempo stringe.

    Grazie

    questo è il codice che ho scritto per aggingere l'oggetto al treeSet... i vari commenti li prendo da un Database, e le righe sono dentro rs

    while (rs.next()) {
    comm c =new comm();
    c.setCommento(rs.getString("commento"));
    c.setAutore(rs.getString("autore"));
    c.setData(rs.getString("data"));
    this.commenti.add(c);
    res=true;
    }

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Il TreeSet non accetta doppioni, probabilmente è per questo :master:
    Che comparatore hai associato al TreeSet?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    5
    Comparatore?
    Scusa ma non so cosa sia...

    Comunque io ho definito l'oggetto treeSet commenti, e poi praticamente ho solo quella parte di codice che lo riguarda, oltre ad un metodo per avere il suo contenuto

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Allora, un TreeSet mantiene gli elementi ordinati (usando un albero, come dice il nome). Quando tu fai treeSet.add(obj) quindi, il treeSet deve sapere come/dove posizionare il nuovo elemento rispetto alla roba già presente. Per fare questo devi dotare il treeset in questione di un comparatore, ovvero di un oggetto che SA come ordinare gli oggetti inseriti.

    Prova a dare un'occhiata a questa pagina della documentazione

    (spero di aver scritto giusto :master: )
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    5
    Praticamente non posso inserire 2 volte lo stesso elemento... e allora come posso fare?
    Si può far variare il nome dell'oggetto in modo che aggiungo ogni volta un oggetto con un nome diverso?

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Prendi la classe "comm" (nome bruttissimo, visto che rappresenta un commento potresti chiamarla "Comment") e falle implementare Comparable:

    codice:
    public class Comment implements Comparable<Comment> {
       ... 
       ...
    
        public int compareTo(Comment c) {
            // Questo è un metodo di Comparable. Per un ordinamento crescente deve restituire:
            // un numero minore di zero se "commento chiamante" < c
            // 0 se "commento chiamante" = c
            // un numero positivo se "commento chiamante" > c
        }
    }
    Decidi te come deve essere ordinato
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.