如何从ArrayList中打印存储的自定义类对象的属性值?
解决方法
首先你提供的示例代码存在变量重复声明的错误,第三行代码应修改为:Car car3 = new Car("make3", "model3", 100000);
因为你声明ArrayList时已经指定了泛型为<Car>,从集合中取出的元素默认就是Car类型,直接调用类中定义的getter方法即可,常用实现方式如下:
方式1:普通for循环遍历
for (int i = 0; i < cars.size(); i++) { Car currentCar = cars.get(i); System.out.println("品牌:" + currentCar.getMake() + ",型号:" + currentCar.getModel() + ",价格:" + currentCar.getPrice()); }
通过ArrayList.get(int index)方法可以取出对应下标的Car对象,直接调用对应getter方法获取属性值即可。
方式2:增强for循环(更简洁)
for (Car car : cars) { System.out.println("品牌:" + car.getMake() + ",型号:" + car.getModel() + ",价格:" + car.getPrice()); }
直接遍历集合中的每一个Car元素,省去下标判断逻辑。
方式3:Java 8及以上版本流式遍历
cars.forEach(car -> System.out.println("品牌:" + car.getMake() + ",型号:" + car.getModel() + ",价格:" + car.getPrice()));
方式4:重写Car类的toString方法(无需手动调用getter)
在Car类中添加toString方法的重写逻辑:
@Override public String toString() { return "Car{" + "make='" + make + '\'' + ", model='" + model + '\'' + ", price=" + price + '}'; }
重写完成后,直接打印集合或者集合中的单个元素就会自动输出属性值:
// 打印整个ArrayList的所有元素属性 System.out.println(cars); // 打印下标为0的元素属性 System.out.println(cars.get(0));
内容的提问来源于stack exchange,提问作者planetoidLV
相关产品推荐
相关产品推荐

