如何在Android上的ArrayList中使用indexOf()?

时间:2015-03-12 02:07:41

标签: java android arraylist indexof

我遇到了一个问题,我试图在名为cars的ArrayList中获取项目的位置。

Car car = new Car(int idcar, String model, String brand);  //Here it's an example

ArrayList<Car> cars = new ArrayList<Car>();

假设我在ArrayList中有5辆车,我想得到3号车的信息,所以我试图用函数indexOf()来获取位置,但它总是返回值-1。

我知道值-1它&#39; S时,它没&#39;吨发现的任何汽车,它&#39的数组列表; s等于到我在功能使用汽车。可能是因为当我使用第二个构造函数并尝试使用indexOf()查找对象时,idcar为null?我使用这样的函数:

int position = cars.indexOf(car);

我认为这是因为我有2个类Car的构造函数。一个是idcar,模特和品牌,另一个是模特和品牌。我之所以这样做,是因为如果我不知道汽车的内容,我就无法在功能中使用汽车,因此它是一个地狱循环,我不知道如何结束它。

它连接到一个数据库,保存你插入到arraylist中的所有汽车,这就是我需要id的原因,因为如果我每天输入7辆汽车,关闭应用程序并运行再一次,我不知道这辆车的身份证(这是它在arraylist中的位置),例如,我无法删除其中一个。

当然,我已经在Car类中设置并设置了方法,以便在我对对象Car进行语音化时获取或设置所有信息。

我希望能够清楚地理解它。

非常感谢!

1 个答案:

答案 0 :(得分:2)

如果您还没有实现Car的equals()方法,则必须确保将完全相同的Car实例传递给indexOf()方法,作为实例包含的实例。列表。

这是因为indexOf()使用包含的对象&#39; equals()方法和equals()默认实现只是一个==比较。

实施Car的equals()方法是有意义的。