Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732

    [JAVA] prendere la data più recente da una lista

    Ciao a tutti,

    volevo chiedervi quale fosse il modo migliore per comparare una serie di oggetti "Date" in Java recuperando, ad esempio, quello che rappresenta la data più recente appena trascorsa.

    Ora non ho sottomano il codice ma siccome dovevo prendere la data più recente fra 3 ho semplicemente:

    - comparato le prime due date e preso la maggiore
    - comparato quest'ultima con la terza data e preso la maggiore.

    dal secondo confronto ottengo il risultato che desidero.

    La comparazione la faccio con

    codice:
    data1.after(data2)
    Ovviamente và bene se si hanno solo due date ma non se ve ne sono N.

    Come è possibile ordinare quindi, ad esempio, un ArrayList di oggetti Date?

    Tnx.

  2. #2
    Ma ti serve sapere solo qual'è la data più recente? Oppure vuoi riordinare l'intera lista?


    Nel primo caso ti basta una variabile di appoggio nella quale salverai la data di volta in volta analizzata se è maggiore dell'ultima memorizzata precedentemente nella stessa variabile di appoggio.

    Nel secondo caso ti è molto più semplice utilizzare l'interfaccia Comparator: Esempio. Oppure se non sei obbligato ad utilizzare ArrayList, puoi utilizzare TreeSet che provvede "automaticamente" all'ordinamento già in fase di inserimento del dato in base al tipo di dato inserito.
    Al mio segnale... scatenate l'inferno!

  3. #3
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    Ciao,

    a me servirebbe semplicemente pescare la data più recente, non tanto ordinare l'intero array.

    Certo la mia idea era, una volta ottenuto un ArrayList, di ordinarlo in modo crescente o decrescente per prendere il primo oppure l'ultimo elemento.

    Grazie ancora.

  4. #4
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    Ho usato il primo metodo che mi hai consigliato.

    Ho inoltre scoperto che la classe Date implementa già i metodi dell'interfaccia "Comparable" quindi basta fare:

    codice:
    Collections.sort(list);
    Per avere un array di date ordinate in senso cronologico.

    Tnx again.

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Sgurbat
    Ho usato il primo metodo che mi hai consigliato.

    Ho inoltre scoperto che la classe Date implementa già i metodi dell'interfaccia "Comparable" quindi basta fare:

    codice:
    Collections.sort(list);
    Per avere un array di date ordinate in senso cronologico.

    Tnx again.
    Potresti provare Collections.max() (o Collections.min()) che ha una complessità lineare sul numero n di elementi (Collections.sort() dovrebbe avere complessità n log n :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

  6. #6
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    Originariamente inviato da Alex'87
    Potresti provare Collections.max() (o Collections.min()) che ha una complessità lineare sul numero n di elementi (Collections.sort() dovrebbe avere complessità n log n :master: )
    Ah ok, quindi se la necessità fosse di recuperare il min o il max, appunto, meglio usare i rispettivi metodi della classe Collections invece che eseguire un ordinamento completo giusto?


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.