Ordinamento in base a data di nascita

di il
4 risposte

Ordinamento in base a data di nascita

Salve a tutti, mi sto avvicinando al mondo Java e ho questo esercizio da svolgere.
Dovrei creare una lista di persone (amici, parenti, ecc.), che deve essere ordinata dal più vecchio al più giovane.

Potreste darmi qualche consiglio su come implementare, o magari qualche sito dove poter studiare questa parte?
Grazie

4 Risposte

  • Re: Ordinamento in base a data di nascita

    Lucabarba ha scritto:


    Dovrei creare una lista di persone (amici, parenti, ecc.)
    Innanzitutto la prima questione riguarda come intendi "modellare" queste cose. Nell'ottica object-oriented, dovresti definire una classe per rappresentare una certa entità, ad esempio una classe Persona (non Persone) per rappresentare una singola persona con i suoi attributi nome, cognome, ecc...

    Lucabarba ha scritto:


    che deve essere ordinata dal più vecchio al più giovane.
    Sull'ordinamento c'è una precisazione da fare: un conto è dover implementare da zero un certo algoritmo di ordinamento es. il BubbleSort (si fa tipicamente solo per motivi "didattici") e un altro conto è usare gli algoritmi già implementati nel framework standard e in tal caso bisogna solo definire il criterio di ordinamento (di comparazione, in pratica) tramite le interfacce Comparable/Comparator.
    A riguardo vedi l'articolo (mio): https://www.iprogrammatori.it/articoli/java/art_comparazione-e-ordinamento-degli-oggetti-in-java_1659.aspx
  • Re: Ordinamento in base a data di nascita

    Ho già dato un'occhiata all'articolo prima di pubblicare il post. Il problema è che volevo modellare il progetto inserendo la data di nascita completa, mentre nell'articolo era presente solamente l'anno.
  • Re: Ordinamento in base a data di nascita

    Usa il parametro n = (anno << 9) + (mese << 5) + giorno per fare le comparazioni, il resto è esattamente come nell'articolo
  • Re: Ordinamento in base a data di nascita

    Lucabarba ha scritto:


    mentre nell'articolo era presente solamente l'anno.
    Sì vero, ma l'ho scritto così solamente per pura semplicità di risultato/esposizione. Se vuoi gestire più propriamente una data, ci sono svariate possibilità: java.util.Date? java.util.(Gregorian)Calendar? Il nuovo java.time.LocalDate (Java 8+)? Una tua banale classe Data? Altro?
Devi accedere o registrarti per scrivere nel forum
4 risposte