【发布时间】:2015-03-12 02:07:41
【问题描述】:
我有一个问题,我试图在一个名为 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 是当它在数组列表中没有找到任何汽车时,它等于我在函数中使用的汽车。可能是因为当我使用第二个构造函数并尝试使用 indexOf() 查找对象时 idcar 为空?我使用这样的功能:
int position = cars.indexOf(car);
我认为这是因为我有 2 个 Car 类的构造函数。一个有 idcar、型号和品牌,另一个只有型号和品牌。我这样做是因为如果我不知道汽车的 id,我就不能在函数中使用汽车,所以这是一个地狱循环,我不知道如何结束它。
它连接到一个数据库,该数据库保存了您插入到数组列表中的所有汽车,这就是我需要 id 的原因,只是因为如果我一天输入 7 辆汽车,关闭应用程序并再次运行它,我不会知道例如,这辆车的 id(它是数组列表中的位置),我将无法删除其中之一。
当然,当我初始化对象 Car 时,我在 Car 类中有所有 get 和 set 方法来获取或设置所有信息。
我希望它可以清楚地理解。
非常感谢!
【问题讨论】:
-
"我想获取3号车的信息,所以我尝试用函数indexOf()获取位置..." 为什么使用
indexOf()if你知道3的索引是什么吗?为什么不直接使用cars.get(3)?
标签: java android arraylist indexof