ArrayListに追加したPointクラスをそれぞれ距離を測る段階で以下のようなエラーが出てしまいます。

"The type of the expression must be an array type but it resolved to ArrayList"

pointを敷き詰める段階までは出来ましたが、ここで止まってしまいました。
どこが間違っているのか分かりません。宜しくお願いします。

ArrayList<Point> points = new ArrayList<Point>();

void setup(){
size(600,600,P3D);
 for(float i=20;i<width-20;i+=20){ //x y平面状にpointを敷き詰めるための二重ループ
 for(float j=20;j<height;j+=20){
  float z = 0;                     //z座標は全て0
  points.add(new Point(i,j,z));    //ArrayListにaddしていく
  }
 }
}
void draw(){
background(230,200,120);
for(Point p : points){            //for文でpointsを読み込んでdisplayを呼び出す
  p.display();
}
 drawLine();                      //drawLineをする
}

void drawLine(){                 
 for(int i=0;i<points.size();i++){      //ArrayListの中身を読み込んでそれぞれを計算する
  for(int j=i+1;j<points.size();j++){    //計算がダブらないようにj=i+1
   float d = dist(                       //距離を測る
   points[i].x,    //←ここに例のエラーが出ます。
   points[i].y,
   points[i].z,
   points[j].x,
   points[j].y,
   points[j].z
   );
   if(d < 50){
   line(            //ラインを引く
     points[i].x,
     points[i].z,
     points[i].y,
     points[j].x,
     points[j].y,
     points[j].z
     );
    }
   }
  }
 }

class Point{      //x,y,zの位置を管理するクラス
 float x,y,z;
 Point(float x_,float y_,float z_){
  x = x_;
  y = y_;
  z = z_;
 }

void display(){
 stroke(0);
 strokeWeight(2);
 point(x,y,z);
 }
}