CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Trier un arraylist java

krid-select
krid-select
Niveau 12
20 février 2016 à 00:30:03

Salut,
j'ai besoin de votre aide, j'ai un tp à rendre pour dimanche et je l'ai presque fini mais j'ai un petit soucis, c'est que je dois trier un arraylist.
En gros j'ai des objets qui sont des individus, qui comprennent plusieurs criteres tels que la date de naissance, les parents etc, et je dois implémenter une classe qui a diverses fonctions donc 2 sont de récupérer tous les enfants de 2 parents ou toute la fratrie d'un individu, jusque là c'est simple mais par la suite je dois les trier par ordre décroissant d'age (du plus vieux au plus jeune quoi) et là je bloque,
je vois pas du tout comment procéder je les ai d'abord tous mis dans un autre arraylist pour pouvoir les séparer du reste et les trier.

Mais maintenant j'ai un arraylist comprenant des individus, comment je peux lui dire de me les sortir par ordre décroissant en fonction de leur date de naissance? j'ai regardé en ligne mais j'ai du mal à comprendre, et j'ai vu la méthode comparable mais je n'ai pas le droit d'implémenter d'autre classe que celle que j'utilise.
Si vous pouviez me donner des pistes ça serait super,
merci d'avance :D

TintinMage
TintinMage
Niveau 10
20 février 2016 à 00:50:04

Utilise la fonction Collections.sort et en implémentant l'interface Comparator

Message édité le 20 février 2016 à 00:50:21 par TintinMage
krid-select
krid-select
Niveau 12
20 février 2016 à 01:41:39

Merci beaucoup :)
J'ai fais comme ça :
Collections.sort(temporaire, new Comparator<Individu>() { @Override public int compare(Individu tc1, Individu tc2) { return tc2.laDate().compareTo(tc1.laDate()); } });

maintenant j'ai pas la moindre idée de si ça va fonctionner, les tests sont dans une autre classe, que j'ai importée dans celle que j'utilises mais j'arrive pas à les lancer:
import test.TestGenealogie;
mais si je fais par exemple :
testDefinirParent1()
ou
TestGenealogie.testDefinirParent1()
que je met dans mon main j'obtiens une erreur pourtant il me semblait que c'était bien comme ça si vous pouviez me dire où se situe mon erreur s'il vous plait
merci d'avance

pauleta3
pauleta3
Niveau 10
20 février 2016 à 01:55:59

TestGenealogie blabla = new TestGenealogie();
blabla.testDefinirParent1();

krid-select
krid-select
Niveau 12
20 février 2016 à 02:16:22

Oh merci beaucoup :)

krid-select
krid-select
Niveau 12
20 février 2016 à 18:25:24

Salut,
j'aurais encore besoin d'un petit coup de pouce s'il vous plait alors voilà :
https://image.noelshack.com/fichiers/2016/07/1455988889-ss-2016-02-20-at-12-18-59.png
je pense avoir presque fini
je dois définir la référence des individus que j'ajoute à mon tableau, donc j'ai fais une méthode simple puisque la référence correspond à la case du tableau à laquelle l'individus se situe, vu qu'on les ajoute un par un j'ai décidé de dire que la référence est égal à la taille au moment où il est ajouté,
seulement quand je fais les tests tout passe sans cette méthode, mais avec ça casse
https://image.noelshack.com/fichiers/2016/07/1455988981-ss-2016-02-20-at-12-20-04.png
les dits tests

Normalement si un individu ne fait pas partie du tableau il doit renvoyer -1 mais là j'avoue que je sèche un peu, je pense pouvoir renvoyer le -1 facilement mais pour les références je comprend pas ce qui cloche.
Bref si vous pouviez encore m'apporter un petit coup de pouce ce serait super
merci beaucoup
bonne journée

krid-select
krid-select
Niveau 12
20 février 2016 à 18:31:15

solution trouvée, j'ai remplacé size et mon systeme de parcours par un indexOf
ce qui donne
moi.definirLaReference(individus.indexOf(moi);

krid-select
krid-select
Niveau 12
20 février 2016 à 19:25:23

Désolé pour le multipost mais enfait je reviens vers vous parce que les tests m'ont permis de me rendre compte d'un problème.

Les méthodes que j'utilise dans ma classe directement fonctionnent, mais celles que j'appellent non
en gros il y a 2 interfaces (généalogie et individu) , individu est implantée par une classe Personne, et moi je dois implanter généalogie, sauf que je dois utiliser des méthodes provenant de Individu,
mais quand je le fais mon programme ne prend pas en compte le fait qu'elles sont implantés par Personne et ne fait tout simplement rien.
J'ai bien importé Personne et Individu mais rien n'y fait
si par exemple je fais
moi.definirParent1(parent1.laReference());

les méthodes definirParent1() et laReference() proviennent de Individu et sont implantées dans Personne, quand je tape ce code j'ai pas d'erreur, la compilation passe (normal vous me direz) et une fois l'exécution lancée ça plante (et ça fais la même chose pour chaque ligne qui utilise des méthodes venant de Individu

Quelqu'un pourrait-il m'indiquer où se situe mon erreur s'il vous plait?
merci beaucoup, bonne journée

krid-select
krid-select
Niveau 12
21 février 2016 à 19:09:51

Salut,
bon au final j'ai cherché et cherché mais je suis face à une impasse, la solution doit etre toute simple mais... impossible https://image.noelshack.com/fichiers/2016/07/1456077868-ss-2016-02-21-at-01-01-52.png
lesEnfants et laFratrie me renvoient soit un tableau par ordre croissant soit un tableau vide
mon comparateur :
Comparator<U> comparator=new Comparator<U>() {
@Override
public int compare(U tc1, U tc2) { return tc1.laDate().compareTo(tc2.laDate());
}
};
En gros pour les Parents si j'ai mes parametres en (x,null) ou (x,y) ça fonctionne mais (null,x) me renvoie un tableau vide
pour les 2 si il y a plusieurs enfant j'ai droit à un ordre croissant,

j'ai aussi la comparaison des enfants des parents
assertequals(g.lesEnfants(p4,p3),g.lesEnfants(p3,p4));
qui me renvoie un tableau vide alors que p3 et p4 sont les parents de p1

bref je sais plus trop quoi faire, pourtant mes algorithmes me semblent correctes par rapport à ce que j'ai trouvé sur le net, je dois rendre ça pour ce soir alors je vous remercie par avance si vous pouvez m'aider sinon merci quand même
bonne journée

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment