2011-01-05 3 views
1

J'utilise Java pour créer une application interactive pour demander aux utilisateurs leur date de naissance. À la minute j'ai une date étant lue et stockée comme une chaîne dans le formulaire (jj-mm-aaaa). Maintenant, il y a plusieurs personnes qui sont stockées dans un arraylist, toutes avec des dates de naissance différentes. Quelle est la meilleure façon de trier l'arraylist en fonction de leurs dates de naissance?Tri des dates - entrée de l'utilisateur

Bien cordialement

Répondre

3

Vous stockez Person objets dans la liste ou les dates? Si vous stockez des dates (java.util.Date), vous pouvez simplement trier la liste et cela devrait bien fonctionner pour vous. Si vous stockez des objets Person, vous pouvez transmettre un Comparator personnalisé qui sera utilisé par l'utilitaire de tri.

Références:

+0

Bonjour, je stocke des objets personnels dans la liste. Merci pour la réponse – user559142

+0

Ensuite, il suffit de fournir dans un 'comparateur 'personnalisé et vous devriez être bon à faire. Bonne chance. –

+0

J'ai trié - À votre santé !! – user559142

3

Démarrer en convertissant la chaîne en un java.util.Date. Les dates ont des sémantiques différentes pour le tri que Strings.

Une fois que vous faites cela, écrivez un comparateur pour faire le travail pour vous. Passez-le avec votre liste à Collections.sort().

+0

Je pense que vous vouliez dire « dates » ont une sémantique différente ... – jzd

+0

Vous avez raison, merci. J'ai édité ma réponse. (N'a pas eu de café quand je l'ai écrit.) – duffymo

+0

Merci! Ça a marché! – user559142

2

Conserver les dates Date objets. Ils sont triables hors de la boîte. Ou, si elle est suffisante pour maintenir des chaînes, changer le format de la date de

dd-mm-yyyy 

à

yyyy-mm-dd 

pour le tri.

+0

Merci pour le conseil! Vous avez travaillé avec vos réponses – user559142

0

Collections.sort (collection, comparateur);

implémentez votre comparateur personnalisé (interface java.util.Comparator) qui compare votre objet en fonction de la date de naissance.

0

Il existe un lien déjà prévu dans la pile sur les flux: http: //stackoverflow.com/questions/1517745/sorting-on-last-name

Questions connexes