Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Ordinare Vector oggetti non omogenei

    Salve ragazzi,

    ho un vettore di oggetti.

    In questo vettore ho (String, String, Data, Double).

    Ovviamente n righe di questi oggetti.

    Dovrei ordinare il vettore in base alla Data come posso fare?

    Avevo visto il metodo Collection.sort ma non cpaisco bene come funzioni mi potete aiutare?

  2. #2

    Re: Ordinare Vector oggetti non omogenei

    Originariamente inviato da bircastri
    Salve ragazzi,

    ho un vettore di oggetti.

    In questo vettore ho (String, String, Data, Double).

    Ovviamente n righe di questi oggetti.

    Dovrei ordinare il vettore in base alla Data come posso fare?

    Avevo visto il metodo Collection.sort ma non cpaisco bene come funzioni mi potete aiutare?
    Devi rendere tali oggetti comparabili.
    Se invece intendi usare il metodo che vuole il comparatore, allora ne definisci uno ad hoc per tali oggetti, implementando l'interfaccia java.util.Comparator.

  3. #3
    Cioè mi potresti far eun esempio?

    Io devo fare il confronto tra date che Java già tiene.

  4. #4
    Originariamente inviato da bircastri
    Cioè mi potresti far eun esempio?

    Io devo fare il confronto tra date che Java già tiene.
    Si. Ma come hai spiegato il Vector non contiene solo date, bensì oggetti che incapsulano una data.
    Poichè vorresti ordinare questa istanza di Vector utilizzando il metodo Collections.sort, allora gli oggetti al suo interno devono essere comparabili oppure ne definisci un comparatore (come già detto).

    Esempio in cui rendi le istanze della tua classe comparabili:
    codice:
    public class TuaClasse implements Comparable<TuaClasse>{
           private String s;
           private String t;
           private Date data;
           private Double d;
    
           // costruttori e metodi ...
    
          @Override
          public int compareTo(TuaClasse o) {
                 // l'unica chiave di confronto è la data
                 return this.data.compareTo(o.data);
          }
    }

  5. #5
    Originariamente inviato da VincenzoTheBest
    Ma come hai spiegato il Vector non contiene solo date, bensì oggetti che incapsulano una data.
    Almeno da quello che hai scritto si è capito questo.

  6. #6
    Forse non riesco a farmi capire.

    Allora io creo questo vettore tramite una query.

    La query è il risultato di due query in pratica io faccio query1 UNION query2

    altrimenti il problema lo risolvevo.


    Ora in questo vector ci sono 5 campi uno tra i quali è la data.

    Devo ordinare tutto il vector in base al campo data

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    la questione è: tu dentro il vector metti un oggetto che contiene il risultato dell'unione.
    Ad esempio, avrai Classe1, Classe2 e Classe3 legate come segue

    Classe3 = Classe1 UNION Classe2.

    Ora per "sfruttare" Collection.sort devi fare in modo che Classe3 implementi il metodo compare (cioè sia Comparable): la Collection.sort agisce su una serie di oggetti tra loro comparabili.
    Il compare in pratica non fa altro che confrontare 2 istanze dello stesso tipo e dire quale viene prima e quale no.

    Difetto di questo approccio: ovviamente per ogni tipo di unione che fai devi pensare ad una classe che modelli l'unione e che faccia i tuoi mestieri.

    Questo ti dicono di fare tutti gli altri

  8. #8
    Uno dei presupposti di ogni buon applicativo è quello di utilizzare un'adeguata struttura dati. I problemi che riscontri dipendono evidentemente dalla mancanza di questo presupposto.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    Originariamente inviato da bircastri
    Forse non riesco a farmi capire.

    Allora io creo questo vettore tramite una query.

    La query è il risultato di due query in pratica io faccio query1 UNION query2

    altrimenti il problema lo risolvevo.


    Ora in questo vector ci sono 5 campi uno tra i quali è la data.

    Devo ordinare tutto il vector in base al campo data
    Farti restituire già i rislutati ordinati per data dal DB?
    Al mio segnale... scatenate l'inferno!

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Originariamente inviato da R@ve M@ster
    Farti restituire già i rislutati ordinati per data dal DB?
    Quoto appieno. Non fare in codice quello che il DB può fare in query, normalmente molto più efficacemente di quanto il programmatore possa ottenere
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.