Arraylist к массиву целых чисел, не может заставить его работать (Java)! - PullRequest
3 голосов
/ 16 февраля 2012

Я создаю метод для получения средних значений всех четных чисел массива.

Как преобразовать объект массива (четные) в массив, чтобы я мог их суммировать?1003 *

    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;

  }    

Ответы [ 4 ]

7 голосов
/ 16 февраля 2012

Почему вы их собираете?Просто подведите их!

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;
2 голосов
/ 16 февраля 2012

Хотя вам не нужно делать это здесь, но для преобразования ArrayList в Arrays сделайте это:

List<T> list = new ArrayList<T>();
T [] yourArray = list.toArray(new T[list.size()]);
1 голос
/ 16 февраля 2012

Вам просто нужно сделать это

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 ;
1 голос
/ 16 февраля 2012

Если вы хотите суммировать их, то просто используйте специальный цикл for для прохождения каждого элемента в четном массиве ArrayList, например

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

return evenSum/evensCount;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...