Parcourir arrayliste
Résolu/Fermé
khatroucha
Messages postés
4
Date d'inscription
mercredi 4 mars 2015
Statut
Membre
Dernière intervention
7 mars 2015
-
Modifié par KX le 4/03/2015 à 13:49
Utilisateur anonyme - 7 mars 2015 à 19:26
Utilisateur anonyme - 7 mars 2015 à 19:26
A voir également:
- Parcourir arrayliste
- Tiktok parcourir en tant qu'invité - Accueil - TikTok
- AngularJS Parcourir un retour JSON ✓ - Forum Javascript
- Aide pour parcourir simultanément les tableaux ✓ - Forum C#
- Philips 46PFL7605H (parcourir son pc) - Forum TV & Vidéo
- Live tiktok - Forum TikTok
3 réponses
Utilisateur anonyme
4 mars 2015 à 09:30
4 mars 2015 à 09:30
public static int caculCodeBin () { int indice=0,BN=0; String sc; for(String e : label) { sc=(e.substring(1,2)); indice=Integer.parseInt(sc); BN=(int)Math.pow(2, indice); } return BN; }
Bonjour, avec indentation c'est plus lisible !
Je suppose que l'attribut label est un attribut.
En fait votre méthode traite bien tout les éléments de la liste mais retourne uniquement la dernière valeur que va prendre BN. (BN n'est pas un tableau de valeur ici).
Utilisateur anonyme
5 mars 2015 à 12:29
5 mars 2015 à 12:29
Votre méthode retourne BN mais qui correspond à dernière valeur de l'array,
Si vous voulez récupérer toutes les valeurs de BN au parcours de la boucle il faut la récupérer dans un tableau ou dans une liste a chaque passage de la boucle.
Il y a plusieurs possibilités, je vous propose de créer une liste d'entier (BN) dans votre méthode. Puis dans la boucle il faut ajouter chaque valeur à BN avec une valeur (celle que vous avez convertie) cela donne quelque chose comme:
PS: je n'ai pas testé ce code.
Cordialement
Si vous voulez récupérer toutes les valeurs de BN au parcours de la boucle il faut la récupérer dans un tableau ou dans une liste a chaque passage de la boucle.
Il y a plusieurs possibilités, je vous propose de créer une liste d'entier (BN) dans votre méthode. Puis dans la boucle il faut ajouter chaque valeur à BN avec une valeur (celle que vous avez convertie) cela donne quelque chose comme:
public static ArrayList<int> caculCodeBin () { ArrayList<int> BN = new ArrayList<int>(); int indice=0; String sc; for(String e : label) { sc=(e.substring(1,2)); indice=Integer.parseInt(sc); BN.add=(int)Math.pow(2, indice); } return BN; }
PS: je n'ai pas testé ce code.
Cordialement
khatroucha
Messages postés
4
Date d'inscription
mercredi 4 mars 2015
Statut
Membre
Dernière intervention
7 mars 2015
6 mars 2015 à 17:40
6 mars 2015 à 17:40
Merci beaucoup :)
Maintenant je confronte une nouvelle difficulté au niveau de traitement des éléments d'une liste : je veux extraire des éléments d'une liste d'objets (liste)et les remplir dans une autre liste(liste2) ,s'ils vérifient une condition , je constate que le remplissage ne s'effectue pas (puisque lors de la vérification de la taille de la nouvelle liste :il ne change pas)
Pouvez_vous m'aider?
Voila le code:
double somme=0;
for (int col=0;col<liste2.size();col++)
{ for (int i=0;i<liste.size();i++)
{liste2.add(liste.get(i));
somme=somme+liste.get(i).value;
if (somme==1)
{ col++;}
}
}
Maintenant je confronte une nouvelle difficulté au niveau de traitement des éléments d'une liste : je veux extraire des éléments d'une liste d'objets (liste)et les remplir dans une autre liste(liste2) ,s'ils vérifient une condition , je constate que le remplissage ne s'effectue pas (puisque lors de la vérification de la taille de la nouvelle liste :il ne change pas)
Pouvez_vous m'aider?
Voila le code:
double somme=0;
for (int col=0;col<liste2.size();col++)
{ for (int i=0;i<liste.size();i++)
{liste2.add(liste.get(i));
somme=somme+liste.get(i).value;
if (somme==1)
{ col++;}
}
}
Utilisateur anonyme
6 mars 2015 à 19:46
6 mars 2015 à 19:46
Voici ce que fais votre code :
Pour chaque éléments de la liste2 ( de 0 à taille.liste), on regarde tout les éléments de la liste1.
Dans votre deuxième boucle vous incrémenté la liste2 d'un élément( elle s'agrandis donc indéfiniment.
et dans le if vous incrémenté col de 1 ce qui donne une boucle infinis.
Si j'ai bien compris votre problème vous voulez parcours la liste 1 et l'ajouter dans une liste 2 si l'élément cherché correspond donc voici un code non testé :
Pour chaque éléments de la liste2 ( de 0 à taille.liste), on regarde tout les éléments de la liste1.
Dans votre deuxième boucle vous incrémenté la liste2 d'un élément( elle s'agrandis donc indéfiniment.
et dans le if vous incrémenté col de 1 ce qui donne une boucle infinis.
Si j'ai bien compris votre problème vous voulez parcours la liste 1 et l'ajouter dans une liste 2 si l'élément cherché correspond donc voici un code non testé :
for (int i = 0; i < liste.size(); i++) { double somme = liste.get(i); System.out.println("Somme numero: "+i+" de valeur " +somme); if(somme==1){ System.out.println("égale à 1 alors ajoute a liste 2"); liste2.add(somme); } }
khatroucha
Messages postés
4
Date d'inscription
mercredi 4 mars 2015
Statut
Membre
Dernière intervention
7 mars 2015
7 mars 2015 à 08:31
7 mars 2015 à 08:31
Je ne cherche pas à ajouter l'élement s'il est égal à 1: la premiére liste est une collection d'objets qui ont un attribut value : je veux ajouter chaque ensemble des objets de la liste qui leur somme de value est égal à 1 dans une colonne de la nouvelle liste (liste2)(dans mon exemple j'ai 6 objet leur somme de value est égal à 3 donc je dois avoir la liste2 de longeur 3)
4 mars 2015 à 10:38
static ArrayList<String> label = new ArrayList<String>();
Alors il faut que je transforme le BN en tableau pour récupérer le traitement de tous les éléments de la liste?