Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Ordinamento array list in base a un campo

    Salve a tutti, ho bisogno di gestire un'agenda in java per un progetto.
    Per gestire la mia agenda, ho creato un array list di elementi di tipo "Appuntamento", che ho creato tramite una classe definendo i suoi campi: nomePersona, luogoAppuntamento, e dataAppuntamento.
    Il campo di dataAppuntamento è di tipo Calendar.
    Vorrei sapere se esiste un metodo di eseguire una sorta di Insertion Sort, che mi permetta di modificare l'ordine degli elementi di tipo Appuntamento all'interno del mio array list, in base alla data.
    Per confrontare le date ho utilizzato la funzione CompareTo, che mi restituisce -1, 0, o 1 se la data di un elemento è minore, uguale, o maggiore all'altra.
    Il mio problema è che non so se è possibile ordinare i miei elementi in base all'indice, effettuando un'operazione di questo tipo:

    array(j+1) = array.get(j);

    Se sapete aiutarmi o darmi dei consigli, mi sareste di aiuto, grazie in anticipo.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da fendshall Visualizza il messaggio
    Vorrei sapere se esiste un metodo di eseguire una sorta di Insertion Sort, che mi permetta di modificare l'ordine degli elementi di tipo Appuntamento all'interno del mio array list, in base alla data.
    Per confrontare le date ho utilizzato la funzione CompareTo, che mi restituisce -1, 0, o 1 se la data di un elemento è minore, uguale, o maggiore all'altra.
    Innanzitutto, per l'algoritmo di ordinamento, se non è una richiesta esplicita per motivi "didattici", non devi implementarlo tu. Esistono già i sort() in java.util.Collections. I due sort() si basano uno su Comparable implicitamente, l'altro su un Comparator esplicito.

    Nella tua classe di oggetti (Appuntamento) puoi implementare Comparable solo una volta. Puoi fare però quanti comparatori vuoi implementando Comparator in classi separate da Appuntamento.

    Scegli cosa usare (Comparable/Comparator), implementa il compareTo/compare e usa quel sort().
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.