将用户输入存储在不是从0开始的数组中

时间:2019-02-10 09:46:25

标签: java arrays collections user-input

我的问题是,在下面的代码中,在选项2中,如果用户Store = 1并且项目明细用新明细覆盖了项目[0]。我希望它存储在item [7]中,而不要覆盖当前信息。该项目位于另一个类的构造方法中。请参阅我如何解决此问题并改进我的代码。

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) { // completionHandler(.newData) // <- Comment it out }

//constructor class

2 个答案:

答案 0 :(得分:2)

您需要在oreder中做您想做的两件事。

  1. 按照上面的同事所说,使用列表。最好在您使用的情况下使用Set来确保只能添加​​一次商品,然后您可以修改购物袋中现有商品的数量。
  2. 使用while(true)循环代替for循环
  3. 添加一个与用户输入结束相对应的选项,它将使您退出while(true)周期。

如果您决定保留阵列。您需要初始化足够大的数组,并保留最后添加的项的索引。同样,您需要使用带有退出条件的while(true)来使该索引有意义。

答案 1 :(得分:1)

如果要在特定索引处插入新元素,则使用List对象或其他集合比使用数组基元要简单。

通过List.add函数,您可以在特定位置插入项目。