Java 如何将数组添加到arrayList而不替换列表中的其他数组
我一直在用Java制作日历。为此,为了存储应用程序运行时输入的信息,我将信息导出到一个txt文件中。现在,在每个应用程序运行的开始,我想从该文件中获取存储的信息,以填充日历。代码方面,这意味着我希望将每一行存储在数组的给定插槽中,然后将数组附加到arrayList:Java 如何将数组添加到arrayList而不替换列表中的其他数组,java,arrays,arraylist,Java,Arrays,Arraylist,我一直在用Java制作日历。为此,为了存储应用程序运行时输入的信息,我将信息导出到一个txt文件中。现在,在每个应用程序运行的开始,我想从该文件中获取存储的信息,以填充日历。代码方面,这意味着我希望将每一行存储在数组的给定插槽中,然后将数组附加到arrayList: String[] arrInfo = {eventName, eventLocation, eventTime, identifier}; for(int i = 0; i < numLines; i++) {
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));
}
}
String[]arrInfo={eventName,eventLocation,eventTime,identifier};
对于(int i=0;i
我使用映射来命名数组,并将它们附加到数组列表(事件)中。我的问题是,当我保持代码不变时,添加到arrayList的最后一个数组将替换所有其他数组,因为我的数组arrInfo位于for循环之外,因此在最后调用它时,它会反复引用相同的信息。但是,当我将此数组放入for循环时,它无法存储该数组的所有信息(因为它只是在不存储多个字符串的情况下一次又一次地重新生成)。如果您能告诉我如何添加阵列,使其每次都是唯一的,我们将不胜感激
解决方案(感谢Tusar):
String[]arrInfo={eventName,eventLocation,eventTime,identifier};
对于(int i=0;i
基本上,对任何感兴趣的人来说,只需重新初始化底部的数组即可;
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
}
}
对于(int i=0;i<16;i++)
{
line=br.readLine();
arrInfo[i%4]=行.toString();
如果((i+1)%4==0)
{
事件。添加(arrInfo);
arrInfo=新字符串[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
}
}