Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec les listes

    11 février 2021 à 14:28:05

    Bonjour,

    Je débute en JAVA et je crois que je m'y perds un peu.

    J'ai 2 Arraylist construitent chacune à la base via la manipulation d'un JSON.

    Dans la première j'ai 3 données : l'id utilisateur, Nom utilisateur, ID lieux

    Dans la seconde j'ai 2 données : ID lieux, nom du lieux

    J'aimerai maintenant pouvoir modifier la première liste pour remplacer l'ID lieux par le nom du lieux qui se trouve dans la deuxième.

    Ou alors créer une 3 liste avec id Utilisateur, Nom utilisateur, Nom du lieux.

    Je ne sais pas vraiment par où chercher et quelles commandes me permettent de faire ça.
    Je vous remercie

    -
    Edité par MichaelDUMAIN 11 février 2021 à 14:28:35

    • Partager sur Facebook
    • Partager sur Twitter
      11 février 2021 à 14:54:19

      "A la main", comment tu ferais ? 

      Tu récupères l'ID lieux dans ta première ArrayList

      Tu recherches l'ID Lieux dans ta seconde ArrayList et tu récupères le nom du lieux correspondant

      Après soit tu remplaces l'ID lieux de la 1ère ArrayList par le nom du lieu récupéré; soit tu créés une nouvelle ArrayList avec les éléments récupérés.

      • Partager sur Facebook
      • Partager sur Twitter
        13 février 2021 à 12:51:15

        Bonjour et merci pour le coup de main.

        J'ai réussi à obtenir ce que je voulais avec une boucle for each. Je sais pas si c'est la meilleure méthode mais ça fonctionne. Ca donne ça en code :

        for (String element : listlieu){ // Pour chaque élément dans listlieu
            if (element.equals(id_lieu)){ // si l'élément est égal à la valeur de id_lieu
                int index = listlieu.indexOf(element); // Mettre dans Index la position de l'élément
                System.out.println("L'élément se trouve à : " +index);
                int Positionlieu = index +1; // Dans ma liste le nom du lieu se trouve juste après l'id
                String lieuName = listlieu.get(Positionlieu); // Mettre dans lieuName la valeur de l'élément situé à la position Positionlieu
                System.out.println("Le lieu de la personne est : " +lieuName);
                listusers.add(lieuName); // Rajouter la valeur du lieu dans la liste listusers
            }
        }

        Est-ce que c'est la meilleure méthode ou est-ce que tu penses qu'il y a plus simple ?

        Merci encore

        -
        Edité par MichaelDUMAIN 13 février 2021 à 12:51:48

        • Partager sur Facebook
        • Partager sur Twitter
          15 février 2021 à 12:48:41

          si c'est pour un seul élément, tu peux supprimer la boucle et utiliser directement un listlieu.indexOf(id_lieu) pour récupérer l'indice du lieu (avec un test pour vérifier son existence dans la liste au préalable).

          if(listlieu.contains(id_lieu)){
                  int index = listlieu.indexOf(id_lieu); // Mettre dans Index la position de l'élément
                  System.out.println("L'élément se trouve à : " +index);
                  int Positionlieu = index +1; // Dans ma liste le nom du lieu se trouve juste après l'id
                  String lieuName = listlieu.get(Positionlieu); // Mettre dans lieuName la valeur de l'élément situé à la position Positionlieu
                  System.out.println("Le lieu de la personne est : " +lieuName);
                  listusers.add(lieuName); // Rajouter la valeur du lieu dans la liste listusers
          }



          • Partager sur Facebook
          • Partager sur Twitter
            2 mars 2021 à 15:26:07

            Désolé pour la réponse tardive, mais merci : Ca fonctionne bien
            • Partager sur Facebook
            • Partager sur Twitter

            Problème avec les listes

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown