无法理解Java中的数组

Vin*_*ran 1 java arrays

有人可以解释为什么我的for循环得到一个错误,要求一个int,但找到一个双?我需要我的数组是一个双,为什么我的方法不起作用?

public class RingBuffer 
{
   private double[] EmptyBuffer;
   private int size;
   private int capacity;

     public RingBuffer(int capacity){
        EmptyBuffer = new double[capacity];


    }

    public int size(){
        int counter = 0; 
        for(int i: EmptyBuffer){
            if(EmptyBuffer[i] != null)
                counter++;
            }

        return counter;
    }
Run Code Online (Sandbox Code Playgroud)

aar*_*man 5

 for(double i: EmptyBuffer){
Run Code Online (Sandbox Code Playgroud)

数组是双精度数,因此对象需要是双精度数.你可以将double转换为int,如果这就是你想要的