Java 未在子列表上工作的索引

Java 未在子列表上工作的索引,java,oop,inheritance,equals,core,Java,Oop,Inheritance,Equals,Core,现在假设我有列表b和A 我想查一下b.indexOfa; 由于indexOf在内部使用equals方法,所以我重写了equals方法 但其返回1和0始终与equals约束无关 请提供解决方案 Class A { private Company comp; private Sector sect; //getters and setter// } class B extends A { //Some other properties// @Override public boolea

现在假设我有列表b和A

我想查一下b.indexOfa; 由于indexOf在内部使用equals方法,所以我重写了equals方法

但其返回1和0始终与equals约束无关

请提供解决方案

Class A
{
private Company comp;
private Sector sect;

//getters and setter//

}

class B extends A
{
//Some other properties//
@Override
    public boolean equals(Object obj)
   {
        if (obj == null)
        {
            return false;
        }
        A other = (A)obj;
            if(other.getSomething().equals(getSomething())
             {
                return true;
             }
             return false;  

   }
}
不可能

但根据

返回此列表中指定元素第一次出现的索引,如果此列表不包含该元素,则返回-1。更正式地说,返回最低的索引i,这样o==null?geti==null:o.equalsgeti,如果没有这样的索引,则为-1

返回索引位置,如果未找到,则返回-1

返回中指定元素最后一次出现的索引 此列表,如果此列表不包含元素,则为-1。更多 形式上,返回最高的索引i,使得o==null? geti==null:o.equalsgeti,如果没有这样的索引,则为-1

如果要检查列表中是否存在给定的对象,请使用该选项,该选项只检查indexOfo>=0


他们正在检查参数类的equal方法。

返回:此列表中指定元素第一次出现的索引,如果此列表不包含此元素,则返回-1。不要返回true或false,返回一个int。你的列表不能只包含一个a对象实例的引用,所以不清楚你希望indexOf如何找到它。我想你说的是equals方法indexOf在内部使用equals方法来查找indexA,可以是一个扩展了a的C。。。你们错过了一些关于继承的东西。列表只针对B对象或Bby的子类,我写的是true,而不是索引位置
b.indexOf(a);

but its returning true always.
public int indexOf(Object o) {
  if (o == null) {
  for (int i = 0; i < size; i++)
  if (elementData[i]==null)
  return i;
  } else {
  for (int i = 0; i < size; i++)
  if (o.equals(elementData[i]))
  return i;
  }
  return -1;
  }
 if (o.equals(elementData[i]))