作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直致力于用 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/
我是一名优秀的程序员,十分优秀!