MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    [Résolu] Une question d'optimisation

    Planifier Épinglé Verrouillé Déplacé Le salon libre
    6 Messages 3 Publieurs 360 Vues 1 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • EclipseOnFireE Hors-ligne
      EclipseOnFire
      dernière édition par

      Salut !

      Je souhaitais savoir (question qui me tracassait…) comment fonctionne exactement la boucle for en mode itération. Je voulais savoir si la liste passée en paramètre n°2 est appelée à chaque tour de boucle ou non. Ce sera plus parlant avec un exemple :

      //Soit une liste quelconque de Listener
      for(Listener i : this.getProfiles().getListeners()){//L'instruction this.getProfiles().getListeners() est-elle répétée ou la boucle garde-t-elle la liste en mémoire ?
      i.onProfileChanged(profile);
      }
      
      

      Ça me tracasse parce que certaines de mes méthodes renvoyant des List prennent un certain temps à rassembler les données.

      Merci d’avance 😄

      Travaille sur un super serveur, Wirestone.

      1 réponse Dernière réponse Répondre Citer 0
      • RedRelayR Hors-ligne
        RedRelay Moddeurs confirmés
        dernière édition par

        Je ne pense pas.
        Tu utilises un iterator de manière implicite.
        Après le seul moyen de vérifier c’est de faire un syso dans ton getListeners().

        –------------------------------------------------------------------------------------
        Si tu trouves mon intervention pertinente, n'hésite pas a m…

        1 réponse Dernière réponse Répondre Citer 0
        • EclipseOnFireE Hors-ligne
          EclipseOnFire
          dernière édition par

          Hum je vais faire ça oui.

          Travaille sur un super serveur, Wirestone.

          1 réponse Dernière réponse Répondre Citer 0
          • jglrxavpokJ Hors-ligne
            jglrxavpok Modérateurs
            dernière édition par

            Si je me rappelle bien. C est effectivement appelé à chaque fois. Mais à moins que tu sois sous Android et/ou que ta liste est énorme (comme 10000+ items) ça ne devrait pas poser problème

            Écrit avec Tapatalk depuis mon mobile. Pardonnez les possibles fautes, j’aime juste pas écrire avec mon mobile.

            Modérateur sur MFF. 
            Mon Github: http://github.com/jglrxavpok
            Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

            1 réponse Dernière réponse Répondre Citer 0
            • EclipseOnFireE Hors-ligne
              EclipseOnFire
              dernière édition par

              @‘jglrxavpok’:

              Si je me rappelle bien. C est effectivement appelé à chaque fois. Mais à moins que tu sois sous Android et/ou que ta liste est énorme (comme 10000+ items) ça ne devrait pas poser problème

              Écrit avec Tapatalk depuis mon mobile. Pardonnez les possibles fautes, j’aime juste pas écrire avec mon mobile.

              Disons que pour une liste de téléchargements c’est pas top x)

              
              @SuppressWarnings("unchecked")
              public List <downloadable>getAssetsByVersion(String versionName, boolean requiredOnly) throws MalformedURLException, IOException{
              String hash = Utils.getMD5(versionName);
              URL url = new URL(/**url ftp + hash**/);
              List <downloadable>downloadables = new ArrayList<downloadable>();
              ObjectInputStream reader = null;
              try{
              reader = new ObjectInputStream(url.openConnection());
              downloadables = (List<downloadable>)reader.readObject();
              finally{
              IOUtils.closeQuietly(reader);
              }
              return downloadables;
              }
              
              

              De toute façon, dans le doute, j’instancie toujours ma liste dans une variable avant de la mettre dans la boucle.


              C’est bon, je viens de checker ! La méthode n’est appelée qu’une seule fois. La liste est donc conservée en mémoire dans la boucle.</downloadable></downloadable></downloadable></downloadable>

              Travaille sur un super serveur, Wirestone.

              1 réponse Dernière réponse Répondre Citer 0
              • RedRelayR Hors-ligne
                RedRelay Moddeurs confirmés
                dernière édition par

                C’est bien ce que je pensais mais attention ce n’est pas valable dans tout les langages 😉

                –------------------------------------------------------------------------------------
                Si tu trouves mon intervention pertinente, n'hésite pas a m…

                1 réponse Dernière réponse Répondre Citer 0
                • 1 / 1
                • Premier message
                  Dernier message
                Design by Woryk
                ContactMentions Légales

                MINECRAFT FORGE FRANCE © 2024

                Powered by NodeBB