Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.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 向列表中的现有键添加值<;类别>;在爪哇_Java - Fatal编程技术网

Java 向列表中的现有键添加值<;类别>;在爪哇

Java 向列表中的现有键添加值<;类别>;在爪哇,java,Java,在这个项目中我需要帮助。我正在尝试将列表值添加到地图中的现有键。请查找下面的程序。请让我知道我错在哪里以及我能做什么。 ` 当代码试图将新元素添加到由数组创建的列表中时,会发生异常。asList()。此方法生成固定大小的列表,不能向其中添加新元素。有关详细说明,请参阅 解决此问题的一个简单方法是使用ArrayList(或List的其他实现),并使用从Arrays.asList()调用获得的列表对其进行初始化 根据您发布的堆栈跟踪,我假设是您将其作为值添加到地图中的列表: fileNeedChec

在这个项目中我需要帮助。我正在尝试将列表值添加到地图中的现有键。请查找下面的程序。请让我知道我错在哪里以及我能做什么。 `


当代码试图将新元素添加到由数组创建的列表中时,会发生异常。asList()。此方法生成固定大小的列表,不能向其中添加新元素。有关详细说明,请参阅

解决此问题的一个简单方法是使用
ArrayList
(或
List
的其他实现),并使用从
Arrays.asList()调用获得的列表对其进行初始化

根据您发布的堆栈跟踪,我假设是您将其作为值添加到地图中的列表:
fileNeedCheck.put(list1,Arrays.asList(新的FC(part1,part2,path,stagPath,file,a))

将此更改为:
fileNeedCheck.put(列表1,新的ArrayList(Arrays.asList,新的FC(part1,part2,path,stagPath,file,a))
List t=new ArrayList
String
FC
?错误是什么?嗨,我用下面的“fileNeedCheck.get(list1.add(value);”更改了else部分。而不是pu(t),我选择了add(value)。它编译得很好,但给出了运行时错误<代码>线程“main”java.lang.UnsupportedOperationException中的异常
并对上述部分中的所有行进行了注释,在java.util.AbstractList.add(AbstractList.java:148)处的java.util.AbstractList.add(AbstractList.java:108)处张贴线程“main”java.lang.UnsupportedOperationException中错误的堆栈跟踪在UpStreamFileCount.main(UpStreamFileCount.java:109)
中,这是因为
List
没有函数
.put()
。将其更改为
fileNeedCheck.get(list1.addAll(t)你好,大卫,我该如何解决这个问题你好,大卫,但我想为现有密钥添加值。当我尝试代码时,它只显示密钥的最后一个值,而不是2个值。我更新了答案。还要注意,您发布的代码包含对未包含的类的引用。不可能编译它,而且有点难理解。看看如何在这里创建一个代码示例:嗨,大卫,我如何在这里添加另一个类,@PallviMahajanSapen,关于你的第二条评论:我不知道我提议的更改如何导致它。你能解释一下你的测试是什么吗?另外,您是否能够在列表中看到两个值,而无需进行适当的更改(或者这只是一个例外)?
  public class UpStreamFileCount
      {


   public static void main(String[] args) throws Exception 
   {
    String App_code = args[0];
    String App_Ctry_code = args[1];
    String hostname=null;
    Map<List<String>, List<FC>> fileNeedCheck = new HashMap<List<String>, List<FC>>();
    try
    {
        InetAddress inetAddress = InetAddress.getLocalHost();
        hostname=inetAddress.getHostName();
    }
    catch(UnknownHostException unknownHostException)
    {
        unknownHostException.printStackTrace();
     }

    BatchDateCalculation cmd = new BatchDateCalculation ();

    String Batch_date = cmd.Compare();
    Date currTime = cmd.CurrTime();
    Date timeBeforeOnehour = cmd.BeforOneHour();

    Pattern pattern = Pattern.compile(",");
    try (BufferedReader in = new BufferedReader(new FileReader("FC.csv"));)
    {
         Map<List<String>,List<FC>> grouped = in
                                             .lines()
                                             .skip(1)
                                             .map(line -> {
                                             String[] arr = pattern.split(line);
                                             return new  FC(arr[0],
                                                               arr[1],
                                                               arr[2],
                                                               arr[3],
                                                               arr[4],
                                                               arr[5]);
                                             })
                                             .collect(Collectors.groupingBy(x -> {
                                              return new ArrayList<String>(Arrays.asList(x.getUpstreamAppCode(), x.getUpstreamGrpAppCode()));
                                             })); 

         File data = new File("newFile.txt");
         if (data.exists()) 
         {
            data.delete();
         }

        FileWriter fw = new FileWriter(data,true);

        for(Map.Entry<List<String>,List<FC>> entry : grouped.entrySet() )
        {        
            List<String> list1 =  entry.getKey();
            for(FC  value : entry.getValue() )
            {
                String a = value.getSlaTime() ;
                Date newTime = cmd.covertTimeToDate(a);

                if (timeBeforeOnehour.before( newTime ) && currTime.after(newTime)) 
                {
                    String result  = String.join(",", list1);
                    String[] parts = result.split(",");
                    String part1 = parts[0];
                    String part2 = parts[1];
                    String path = value.getPath();
                    String stagPath = value.getStagPath();
                    String file = value.getFile();
                    String s = result + "," + path + "," + stagPath + "," + file + "," + a ;
                    String addMapValue = path  + "," + stagPath + "," + file + "," + a ;
                    fw.write(s);
                    fw.write(System.getProperty( "line.separator" ));
                    if(!fileNeedCheck.containsKey(list1))
                    {
                        fileNeedCheck.put(list1,Arrays.asList( new FC(part1,part2,path,stagPath,file,a)) );
                    }
                    else
                    {
                        List<FC> t = new ArrayList<String>(Arrays.asList(new FC(part1,part2,path,stagPath,file,a)));
                        t.add(value);
                        fileNeedCheck.get(list1).put(t);
                    }   
                }
            }
         }
        fw.close();
    }
      `
  if(!fileNeedCheck.containsKey(list1))
                    {
                        fileNeedCheck.put(list1,Arrays.asList( new FC(part1,part2,path,stagPath,file,a)) );
                    }
                    else
                    {
                        List<FC> t = new ArrayList<FC>(Arrays.asList(new FC(part1,part2,path,stagPath,file,a)));
                        t.add(value);
                        fileNeedCheck.get(list1).add(value);
                       // fileNeedCheck.get(list1).put(t);
                    }   
   Exception in thread "main" java.lang.UnsupportedOperationException
   at java.util.AbstractList.add(AbstractList.java:148)
   at java.util.AbstractList.add(AbstractList.java:108)
   at java.util.AbstractCollection.addAll(AbstractCollection.java:344)
  at UpStreamFileCount.main(UpStreamFileCount.java:107)