Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将数组添加到arrayList而不替换列表中的其他数组_Java_Arrays_Arraylist - Fatal编程技术网

Java 如何将数组添加到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++) {

我一直在用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));
      }
    }
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
      }
    }