gpt4 book ai didi

java - 如何将数组添加到 arrayList 而不替换列表中的其他数组

转载 作者:行者123 更新时间:2023-12-02 06:17:24 26 4
gpt4 key购买 nike

我一直致力于用 Java 制作日历。这样做时,为了存储应用程序运行时输入的信息,我已将信息导出到 txt 文件。现在,在每个应用程序运行开始时,我想从该文件中获取存储的信息来填充日历。从代码角度来说,这意味着我想将每一行存储在数组的给定槽中,然后将数组附加到 arrayList:

String[] arrInfo = {eventName, eventLocation, eventTime, identifier};
for(int i = 0; i < numLines; i++)
{
line = br.readLine();
arrInfo[i%4] = line.toString();
if((i+1)%4 == 0)
{
HashMap<String, String[]> map = new HashMap<String, String[]>();
String name = arrInfo[3];
map.put(name, arrInfo);
events.add(map.get(name));
}
}

我使用 map 来命名数组并将它们附加到数组列表(事件)中。我的问题是,当我按原样保留代码时,添加到 arrayList 的最后一个数组将替换所有其他数组,因为我的数组 arrInfo 位于 for 循环之外,因此在它出现时会一遍又一遍地引用相同的信息。最终被要求。然而,当我将此数组放入 for 循环中时,它无法存储该数组的所有信息(因为它只是一遍又一遍地重新制作而没有存储多个字符串)。任何帮助告诉我如何添加数组以使其每次都是唯一的将不胜感激。

解决方案(感谢Tusar):

String[] arrInfo = {eventName, eventLocation, eventTime, identifier};
for(int i = 0; i < numLines; i++)
{
line = br.readLine();
arrInfo[i%4] = line.toString();
if((i+1)%4 == 0)
{
HashMap<String, String[]> maps = new HashMap<String, String[]>();
String name = arrInfo[3];
maps.put(name, arrInfo);
events.add(maps.get(name));
arrInfo = new String[4];
}
}

基本上,对于任何感兴趣的人,只需重新初始化底部的数组即可。

最佳答案

  String[] arrInfo =new String[4];
for(int i = 0; i < 16; i++)
{
line = br.readLine();
arrInfo[i%4] = line.toString();
if((i+1)%4 == 0)
{
events.add(arrInfo);
arrInfo =new String[4]; // re-initialize the array
}
}

关于java - 如何将数组添加到 arrayList 而不替换列表中的其他数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21323921/

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