IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Extraction de deux valeurs d'un tableau et les afficher par ordre croissant.


Sujet :

Collection et Stream Java

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 217
    Points : 218
    Points
    218
    Par défaut Extraction de deux valeurs d'un tableau et les afficher par ordre croissant.
    Bonjour, tout le monde, je reviens demander votre aide concernant l'organisation de valeurs par ordre croissant.

    On me demande dans un exercice similaire à celui que j'avais eu précédemment, de générer des nombres aléatoires, de calculer la surface de deux cercles ayant pour rayon la première et la cinquième valeur de celles générées et de ranger ces deux valeur après calcul par ordre croissant.

    Bon j'ai réussi à tout faire, enfin presque, il ne me reste qu'a ranger les résultats par ordre croissant.

    J'ai fait quelques recherches et j'ai trouvé la méthode Array.sort(), mais de ce que j'ai compris elle ne me sert que pour organiser les valeurs du tableaux par ordre croissant ou décroissant.

    Donc ma question est : peut elle être utilisée pour des valeurs qui ne sont pas dans le tableau? Si oui, comment?

    Merci d'avance pour le temps que vous allez me consacrer.

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Points : 4 792
    Points
    4 792
    Par défaut
    Ben non ...

    Array.sort() trie des valeurs d'un tableau
    donc pas de tableau ... pas de tri.

    Y-a-t-il une raison particulière pour ne pas mettre tes valeurs dans le tableau et les trier ?

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Attention, Arrays.sort(array, comparator), trient les valeurs dans le tableau, mais le critère de tri peut être une propriété ou une propriété de propriété de la valeur qui se trouve dans le tableau.

    Par exemple, imaginons une classe Personne, avec une méthode qui donne le nom de la personne, et une autre, son age :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public class Personne {
     
        ...
     
        public String getId() {
           ...
        }
     
        public String getNom() {
           ...
        }
     
        public float getAge(){
           ...
        }
     
    }
    On peut trier selon l'ordre des noms, ou selon l'ordre des ages : la méthode compare(Personne p1, Personne p2) permet justement d'aller chercher les propriétés de Personne qu'on désire utiliser pour faire le tri : mais ce sont bien des Personnes qu'on tri, et ce sont bien uniquement des Personnes qui se trouvent dans le tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    public class AgeComparator implements Comparator<Personne> {
     
        public int compare(Personne p1, Personne p2) {
            if ( p1.getAge()<p2.getAge() ) {
                return -1;
            } else ( p1.getAge()>p2.getAge() ) {
                return 1;
            }
            else {
                if ( p1.equals(p2) ) {
                  return 0;
                }
                else {
                    return p1.getId().compareTo(p2.getId()); // par exemple
                }
            }
        }
     
    }
    Donc on peut trier des cercles selon leur rayon, par exemple.

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Points : 4 792
    Points
    4 792
    Par défaut
    Quand tu écris :
    ranger ces deux valeur ... par ordre croissant
    tu veux dire que tu dois classer DEUX valeurs ?

    Si c'est le cas je pense qu'un simple if du genre valeur1 >= valeur2 devrait suffire.

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 217
    Points : 218
    Points
    218
    Par défaut
    Oui en fait je ne peux pas ranger les valeurs par ordre croissant quand elles sont dans le tableau, car je dois le faire
    après le calcul effectué à partir de la valeur 0 et 4 du tableau.
    En fait le plus simple c'est de faire une boucle if avec les deux valeurs, comme tu as dit Népomucène.

    Je fais ça, normalement je devrais pas avoir d'autres problèmes sur cette partie de l'exercice, concernant les autres exos c'est moins certain, mais bon en attendant je vous remercie tout deux pour vos conseils.

    Du même coup je tiens à remercier, tout le forum Developpez, car à chaque fois que j'ai eu un soucis on m'a tout de suite répondu en me donnant des conseils qui ont été des plus efficaces, je sais que c'est le but d'un forum, mais souvent cette règle n'est que trop oubliée.
    Je viens de débuter dans le domaine de la programmation et si tout va bien il sera le domaine dans lequel je travaillerai plus tard et je suis content d'avoir trouvé un forum où en cas de difficulté je peux compter sur une communauté prête à aider.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Trier par ordre croissant des valeurs dans un tableau
    Par ftrap dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 26/06/2013, 11h35
  2. [Débutant] [uitable] Récupérer toutes les valeurs d'un tableau et les comparer à un fichier
    Par nawal59 dans le forum Interfaces Graphiques
    Réponses: 10
    Dernier message: 18/10/2010, 17h57
  3. Réponses: 3
    Dernier message: 13/04/2010, 13h39
  4. Réponses: 3
    Dernier message: 26/03/2010, 23h55
  5. Trier un tableau par ordre croissant
    Par Halleck dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 01/11/2004, 01h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo