gpt4 book ai didi

java - 在 java 中使用对象数组

转载 作者:行者123 更新时间:2023-12-02 00:33:42 27 4
gpt4 key购买 nike

我正在使用 Java 中的对象数组,但我很难理解它们,我想这只是因为我还不习惯它们..

基本上我想做的是出现一个选项菜单..当用户按“1”(在主应用程序类中)时,它将它们带到另一个类(addVehicle()),其中有一个车辆对象作为参数传入。 (这一切都很好)

在本类(class)的顶部,我将车辆限制为最多 4 辆:

Vehicle[] vehicles = new Vehicle[4];

然后这是添加车辆的方法:

public void addVehicle(Vehicle vehicle[]) throws FileNotFoundException
{
reader = new Scanner(file);
if(canAddVehicle(vehicles[vehicles.length - 1]))
{
vehicle[vehicles.length - 1] = new Vehicle();
vehicle[vehicles.length - 1].readRecord(reader);

System.out.println("Vehicle Added!");
}
else
{
System.out.println("You can not add more than 4 vehicles.");
}
}

我希望它将这个车辆对象存储在数组中的下一个位置(如果仍有空位)以及与该车辆相关的所有信息

我这样做的方式正确吗?该车辆对象是否正确存储到数组中?我应该询问头等舱车辆的信息吗?

最佳答案

我认为问题是您不理解 vehicles.length 代表什么。

如果你说:

Vehicle[] vehicles = new Vehicle[4];

那么vehicles.length始终4。这就是数组的长度;它是固定的(您无法调整数组的大小),并且您还没有为其任何元素分配任何内容也没关系。创建数组时,您将有四个元素,每个元素都包含 null

要使用数组完成您想要做的事情,您有几个选择。

  • 跟踪您分配车辆的最后一个索引,从0开始
  • 每次要插入时都会遍历数组并查找第一个 null 的索引。 (请注意,这是一种非常低效的方法)

更简单的方法是使用 Java 的 Collections 之一它们是动态的,并且随着您添加内容而增加大小。安ArrayList例如。

关于java - 在 java 中使用对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8379341/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com