like this for (int i = bottles.length-1; i>=0; i–) {} i am having another issue with the remove
my code is long but please be patient; look  for void removebottle() inside the class
ArrayList<Trash> trash ;
//Trash[] trash = new Trash[5];
PImage[] bottles = new PImage[3];
float time = 0;
PImage img;
PImage fish;
void setup() {
  size(640, 640);
  fish = loadImage("fish.png");
  img = loadImage("aceituna.png");
  trash = new ArrayList<Trash>();
  for (int i = 0; i < bottles.length; i++) {
    bottles[i] = loadImage("water-bottle-"+i+".png");
  }
  for (int i = 0; i < 5; i++) {
    int index = (int(random(0, bottles.length))); 
    trash.add(new Trash(bottles[index], 120+i*100, 645, random (32, 72)));
  }
}
void draw() {
  background(30);
  noStroke();
  fill(0);
  rect(0, height/2, width, height/2);
  for (Trash part : trash) {
    part.fish();
    part.bouncingseagal();
    part.move();
    part.removebottle();
    part.display();
  }
  //waves
  float x = 0;
  stroke(30); 
  strokeWeight(10);
  while (x < width) {
    point(x, 285+50 *noise(x / 100, time));
    point(x, 295+50 *noise(x / 100, time));
    point(x, 310+50 *noise(x / 100, time));
    x = x + 1;
  }
  time = time + 0.02;
}
class Trash {
  float x;
  float y;
  float speedY = 0.5;
  float randomSize;
  float offSetThis = 10; 
  float scalarThis = 3; 
  float yay;
  float diamW = int(900/400), diamH = int(800/400);
  PImage bottle;
  float upDown = 0.0;
  float speedTrash =.04; 
  //seagal
  float xE = 0;
  float yE = 0;
  float ellipseXSpeed = 1;
  float ellipseYSpeed = 1.4;
  //fish variables
  float xLoc = -250;
  float yLoc = 400; 
  float angle = 0.0;
  float offset = 150; 
  float scalar = 50; 
  float speed =.04; 
  boolean gLeft, gRight;
  //rectangel
  int rectW = width;
  int rectH = height/2;
  int rectX = 0, rectY = height/2;
  Trash(PImage tempImg, float tempX, float tempY, float tempD) {
    x = tempX;
    y = tempY;
    randomSize = tempD;
    bottle = tempImg;
  }
  void fish() {
    randomSeed(0);
    int wW = int (320/3);
    int wH = int (215/3);
    int r = (int) random(-5, 5);
    float y1 = offset + sin(angle) * scalar;
    float y2 = offset + sin(angle + .4) * scalar;
    float y3 = offset + sin(angle + .8) * scalar;
    float y4 = offset + sin(angle + 1.2) * scalar;
    if (mouseX > xLoc+r && mouseX < xLoc+r + wW*r && mouseY > yLoc+y1
      && mouseY < yLoc+y1 + wH*r) {
      tint(255, 0, 0);
    } else {
      noTint();
    }
    image(fish, xLoc+r, yLoc+y1, wW*r, wH*r);
    image(fish, xLoc+r, yLoc+y2, wW, wH);
    image(fish, xLoc+150, yLoc+y3+50, wW*r, wH*r);
    image(fish, xLoc+50, yLoc+y4, wW, wH);
    angle += speed; 
    if (y + rectH >= height/2) {
      gRight = true;
      xLoc++;
      if (xLoc <= -100) {
        gRight = true;
        gLeft = false;
      } 
      if ( gRight == true) {
        xLoc = xLoc+2;
      }
      if (xLoc + wW >= width + wW * 2) {
        gLeft = true;
        xLoc = xLoc *-1;
      }
      if (xLoc > width + wW * 2) {
        gLeft = true;
        gRight = false;
      }
      if (gLeft == true) {
        xLoc--;
      }
    }
  }
  void bouncingseagal() {
    int w = int(370/3);
    int h = int(215/3);
    smooth();
    imageMode(CORNER);
    noTint();
    image(img, xE, yE, w, h);
    xE += ellipseXSpeed;
    yE += ellipseYSpeed;
    if (xE < 0 || xE + w/2 > width - w/2) {
      ellipseXSpeed *= -1;
    }
    if (yE < 0 || yE + h/2 > height/2 - h/2) {
      ellipseYSpeed *= -1;
    }
    //detect moving square
    //if (xE+s+ellipseXSpeed > x && xE + ellipseXSpeed < x+diamW
    //  && yE+s>y && yE < y + diamH) {
    //  ellipseXSpeed *= -1;
    //}
    //if ( xE + s > x && xE < x + diamW && yE + s + ellipseYSpeed > y
    //  &&yE + ellipseYSpeed < y + diamH) {
    //  ellipseYSpeed *= -1;
    //}
  }
  void move() { 
    if (y + diamH > height) {
      speedY *= 1;
    }
    y--;
    if (y + diamH < height/2 + 40) {
      y = y + y;
      speedY *= -1;
    }
  }
  void removebottle() {
    for (int i = bottles.length-1; i>=0; i--) {
      bottles[i] = bottles[i].get();
      if (mouseX > x && mouseX < x + diamW * randomSize && mouseY > y + yay
        && mouseY < y + yay + diamH * randomSize) { 
        trash.remove(i);
      }
    }
  }
  void display() {
    imageMode(CENTER);
    yay = offSetThis + sin(angle) * scalarThis;
    noTint();
    image(bottle, x, y+yay, diamW * randomSize, diamH * randomSize);
  }
}