Java ArrayList IndexOf - Поиск индекса объекта

Допустим, у меня есть класс

public class Data{
    public int k;
    public int l;
    public Data(int k, int l){
      this.k = k; 
      this.l = l;
    }
    public boolean equals(Date m){
      if(this.k == m.k && this.l = m.l)
           return true;
      return false;
    }
}

И я добавляю несколько объектов Data в ArrayList:

ArrayList<Data> holder = new ArrayList<Data>;
Data one = new Data(0,0);
Data two = new Data(0,4);
Data three = new Data(0,5);

Почему indexOf не находит это?

holder.indexOf(new Data(0,4)); //returns -1

Является ли indexOf лучше, чем сам просматривать весь список массивов? Или я что-то упустил.

Ответы на вопрос(4)

Ваш ответ на вопрос