3 votes

Arraylist en tableau d'entiers, je n'arrive pas à le faire fonctionner (java) !

Je crée une méthode pour prendre la moyenne de tous les nombres pairs d'un tableau.

Comment puis-je convertir l'objet arraylist (evens) en un tableau, afin de pouvoir les additionner ?

    public static double percentEven(int[]a)
    {
    ArrayList evens = new ArrayList();
    int evenSum = 0;

    for (int counter = 0;counter < a.length;counter++)
    {
        if ((a[counter]%2) == 0 )    
        evens.add(a[counter]);
    }    

    int[] evenReturned = new int[evens.size()];
    evens.toArray(evenReturned);

    int evensCount = 0;
    for (evensCount = 0;evensCount < evens.size();evensCount++)
    {
        evenSum += evenReturned[evensCount];   
    }    

    return evenSum/evensCount;

  }

7voto

Bohemian Points 134107

Pourquoi les collectionnez-vous ? Il suffit de les additionner !

int evensCount = 0;
int evenSum = 0;
for (int counter = 0; counter < a.length; counter++) {
    if (a[counter] % 2 == 0) {
        evensCount++;
        evenSum += a[counter];
    }
}

return evenSum/evensCount;

2voto

Kuldeep Jain Points 3017

Bien que vous n'ayez pas besoin de le faire ici, mais pour convertir ArrayList en Arrays, faites ceci :

List<T> list = new ArrayList<T>();
T [] yourArray = list.toArray(new T[list.size()]);

1voto

brandonio21 Points 85

Si vous voulez les résumer, il suffit d'utiliser une boucle for spécialisée pour parcourir chaque élément de la liste matricielle evens, par exemple

for (int e : evens)
{
   evenSum += e;
}

return evenSum/evensCount;

1voto

Rocky Points 901

Vous devez juste faire ceci

if ((a[counter]%2) == 0 ) { 
    evenCount++ ;
    evens.add(a[counter]); // required only if you want an array of even numbers 
    evenSum += a[counter] ;
}
...
...
return evenSum / evenCount ;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X