Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arraylist到整数数组,可以';不要让它工作(java)!_Java_Arrays_Arraylist - Fatal编程技术网

Arraylist到整数数组,可以';不要让它工作(java)!

Arraylist到整数数组,可以';不要让它工作(java)!,java,arrays,arraylist,Java,Arrays,Arraylist,我正在创建一个方法来获取数组中所有偶数的平均值 如何将arraylist对象(evens)转换为一个数组,以便对其求和 public static double percentEven(int[]a) { ArrayList evens = new ArrayList(); int evenSum = 0; for (int counter = 0;counter < a.length;counter++) { if ((

我正在创建一个方法来获取数组中所有偶数的平均值

如何将arraylist对象(evens)转换为一个数组,以便对其求和

    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;

  }    
公共静态双偶数百分比(int[]a)
{
ArrayList evens=新的ArrayList();
int evenSum=0;
用于(int计数器=0;计数器
你为什么要收集它们?算了吧

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;
int evensunt=0;
int evenSum=0;
用于(int计数器=0;计数器
如果您想对它们进行汇总,那么只需使用专门的for循环遍历evens ArrayList中的每个元素即可

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

return evenSum/evensCount;

你只需要这样做

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 ;

虽然您不需要在此处执行此操作,但要将ArrayList转换为Arrays,请执行以下操作:

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

为什么要将其转换为数组,不需要这样做?你可以按原样从ArrayList中把它们加起来。为什么不直接在数组上求平均呢?只需保持偶数元素的总和和计数。添加结束返回值
总和/计数
。顺便说一句,你现在也忘记了最后一部分。另一方面,请注意,如何正确地将arraylist转换为array?