Java 创建一个key=String、value=ArrayList的映射<;双倍>;

Java 创建一个key=String、value=ArrayList的映射<;双倍>;,java,arraylist,Java,Arraylist,我想在Java类中创建一个映射,其中键是String,值是typeArrayList。我的要求是,如果字符串等于某个值,我可以快速提取相应的列表。所有列表都是同一类中的私有变量。 有人能告诉我下面的代码哪里错了吗 我发现编译错误: error: <identifier> expected METRICS_LIST_MAP.put("CPUUtilization", CPUUtilizationList); 错误:预期的度量值\u列表\u映射.put(“CPUUtilization”

我想在Java类中创建一个映射,其中键是
String
,值是type
ArrayList
。我的要求是,如果字符串等于某个值,我可以快速提取相应的列表。所有列表都是同一类中的私有变量。 有人能告诉我下面的代码哪里错了吗

我发现编译错误:

error: <identifier> expected METRICS_LIST_MAP.put("CPUUtilization", CPUUtilizationList);
错误:预期的度量值\u列表\u映射.put(“CPUUtilization”,CPUUtilizationList);
我的代码:

private  ArrayList<Double> CPUUtilizationList;
private  ArrayList<Double> DiskReadOpsList;
private  ArrayList<Double> DiskWriteOpsList;
private  ArrayList<Double> DiskReadBytesList;
private  ArrayList<Double> DiskWriteBytesList;
private  ArrayList<Double> NetworkInList;
private  ArrayList<Double> NetworkOutList;

Map<String, ArrayList<Double>> METRICS_LIST_MAP = new HashMap<String, ArrayList<Double>>();
METRICS_LIST_MAP.put("CPUUtilization", CPUUtilizationList);
METRICS_LIST_MAP.put("DiskReadOps", DiskReadOpsList);
METRICS_LIST_MAP.put("DiskWriteOps", DiskWriteOpsList);
METRICS_LIST_MAP.put("DiskReadBytes", DiskReadBytesList);
METRICS_LIST_MAP.put("DiskWriteBytes", DiskWriteBytesList);
METRICS_LIST_MAP.put("NetworkIn", NetworkInList); 
METRICS_LIST_MAP.put("NetworkOut", NetworkOutList); 
private ArrayList CPUUtilizationList;
私有ArrayList DiskReadOpsList;
私有ArrayList DiskWriteOpsList;
私有ArrayList DiskReadBytesList;
私有ArrayList DiskWriteBytes列表;
私有ArrayList NetworkInList;
私有ArrayList NetworkOutList;
Map METRICS_LIST_Map=new HashMap();
度量列表映射put(“CPUUtilization”,CPUUtilizationList);
度量列表映射put(“DiskReadOps”,DiskReadOpsList);
度量列表映射put(“DiskWriteOps”,DiskWriteOpsList);
度量\u列表\u映射.put(“DiskReadBytes”,DiskReadBytesList);
度量列表映射put(“DiskWriteBytes”,DiskWriteBytes列表);
指标列表映射放置(“NetworkIn”,NetworkInList);
度量列表映射输出(“NetworkOut”,NetworkOutList);

谢谢

该代码在您的类中位于何处?它是否位于所有构造函数和方法之外?如果是这样,就不能调用put(…)方法,而只能声明或声明并初始化变量和常量。此外,请始终发布完整的错误消息。你可能遗漏了重要的陈述。因此,请确保在方法或构造函数块中调用
put(…)
方法调用

由于您似乎还没有初始化任何列表,所以您似乎正在将空值传递到地图中。请理解,您不会将变量传递到映射中,而是传递到对象中。因此,如果没有为变量分配可行的对象,则将变量传递到映射中不会产生任何效果

e、 g

import java.util.ArrayList;
导入java.util.HashMap;
导入java.util.Map;
公开课Foo{
//首先初始化所有列表
私有ArrayList CPUUutilizationList=新ArrayList();
私有ArrayList diskReadOpsList=新ArrayList();
私有ArrayList diskWriteOpsList=新ArrayList();
私有ArrayList diskReadBytesList=新ArrayList();
私有ArrayList DiskWriteByteList=新ArrayList();
private ArrayList networkInList=新建ArrayList();
私有ArrayList networkOutList=新ArrayList();
私有映射metricsListMap=新HashMap();
公共食物({
//在构造函数或方法中插入到映射中
metricsListMap.put(“CPUUtilization”,cPUUtilizationList);
metricsListMap.put(“diskReadOps”,diskReadOpsList);
metricsListMap.put(“diskWriteOps”,diskWriteOpsList);
metricsListMap.put(“diskReadBytes”,diskReadBytesList);
metricsListMap.put(“diskWriteBytes”,diskWriteBytes列表);
metricsListMap.put(“networkIn”,networkInList);
metricsListMap.put(“networkOut”,networkOutList);
}
}

作为旁白,你需要学习和使用。变量名都应该以小写字母开头,而类名应该以大写字母开头


遵循这些建议以及良好的代码格式化实践将使其他人(如我们!)更好地理解您的代码,更重要的是,将使您未来的自己更好地理解您在6个月前编写代码时的想法。

该代码在您的课堂中位于何处?它是否位于所有构造函数和方法之外?如果是这样,您就不能调用
put(…)
方法,而只能声明或声明并初始化变量和常量。此外,请始终发布完整的错误消息。在Java代码中,除了声明之外,还属于构造函数或方法。将您的
put
语句包装在
{}
中,这称为“实例初始化器”,将被复制到构造函数中。此外,看起来您正在将空值传递到映射中。尚未初始化任何ArrayList。谢谢!我不应该在没有函数的情况下初始化…拥有一个类的7个属性并将它们放入映射中有什么意义?
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class Foo {
   // initialize all your lists first
   private ArrayList<Double> cPUUtilizationList = new ArrayList<>();
   private ArrayList<Double> diskReadOpsList = new ArrayList<>();
   private ArrayList<Double> diskWriteOpsList = new ArrayList<>();
   private ArrayList<Double> diskReadBytesList = new ArrayList<>();
   private ArrayList<Double> diskWriteBytesList = new ArrayList<>();
   private ArrayList<Double> networkInList = new ArrayList<>();
   private ArrayList<Double> networkOutList = new ArrayList<>();

   private Map<String, ArrayList<Double>> metricsListMap = new HashMap<String, ArrayList<Double>>();

   public Foo() {
      // insert into Map in constructor or method
      metricsListMap.put("CPUUtilization", cPUUtilizationList);
      metricsListMap.put("diskReadOps", diskReadOpsList);
      metricsListMap.put("diskWriteOps", diskWriteOpsList);
      metricsListMap.put("diskReadBytes", diskReadBytesList);
      metricsListMap.put("diskWriteBytes", diskWriteBytesList);
      metricsListMap.put("networkIn", networkInList);
      metricsListMap.put("networkOut", networkOutList);
   }
}