Java 使用哈希映射的ArrayList

Java 使用哈希映射的ArrayList,java,arraylist,hashmap,Java,Arraylist,Hashmap,有人能告诉我下面的代码有什么问题吗?当我在try{之后的第一行下面运行代码时,会产生以下错误: java.lang.IndexOutOfBoundsException:索引:0,大小:0 publicstaticclass-ASIFFile{ 私有数组列表数据; private static int currRec=0;//根据此图为每个记录分配一个数字id。 //一种文件读取方法 公共ArrayList ReadASIFfile(文件数据文件){ 数据=新阵列列表(500); 试一试{ Has

有人能告诉我下面的代码有什么问题吗?当我在try{之后的第一行下面运行代码时,会产生以下错误:

java.lang.IndexOutOfBoundsException:索引:0,大小:0

publicstaticclass-ASIFFile{
私有数组列表数据;
private static int currRec=0;//根据此图为每个记录分配一个数字id。
//一种文件读取方法
公共ArrayList ReadASIFfile(文件数据文件){
数据=新阵列列表(500);
试一试{
HashMap temp=新的HashMap(10);
数据集(电流、温度);
(data.get(currRec)).put(“recID”,Integer.toString(currRec));//给记录一个数字ID
...  

您从未向
ArrayList
添加任何内容。您有一个
ArrayList
,可以保存
哈希映射,但当前为空。在使用该索引之前,您必须向要使用的索引添加一个新的
HashMap

如Kevin所述,您从未在ArrayList中添加任何内容。您的代码应该像这样的

data = new ArrayList<HashMap<String, String>>(500);

try {
    //give the record a numeric ID
     data.add(currRec, temp);
data=newarraylist(500);
试一试{
//给记录一个数字ID
添加数据(电流、温度);

在以前的解决方案中,您正在调用data.set(currRec,temp);假设在ArrayList的currec位置有一个HashMap元素。如果您还没有在ArrayList中放入任何内容,将不会有元素currec。

第二行为分号:)@Eich ah,复制到文本框是一个错误。它实际上在代码中。我将其更改为
HashMap temp=new HashMap(10);data.set(currRec,temp);(data.get(currRec)).put(“recID”,Integer.toString(currRec));
但是我仍然有这个问题。你还有其他建议吗?谢谢你的帮助,问题是我在做data.set而不是data.add!
data = new ArrayList<HashMap<String, String>>(500);

try {
    //give the record a numeric ID
     data.add(currRec, temp);