使用HashMaps的ArrayList

时间:2014-01-08 17:06:15

标签: java arraylist hashmap

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

“java.lang.IndexOutOfBoundsException:Index:0,Size:0”

public static class ASIFFile {
            private ArrayList<HashMap<String,String>> data;
            private static int currRec = 0; //assign each record a numeric id based on this figure.

            // Method for reading ADIFfile  
            public ArrayList<HashMap<String,String>> ReadASIFfile (File DataFile) {      
                data = new ArrayList<HashMap<String, String>>(500);

                try {
                        HashMap<String, String> temp = new HashMap<String,String>(10);
                        data.set(currRec, temp);                        
                        (data.get(currRec)).put("recID", Integer.toString(currRec));//give the record a numeric ID


...  

2 个答案:

答案 0 :(得分:6)

您永远不会向ArrayList添加任何内容。您有{{1>} 可以按住ArrayList,但目前为空。在使用之前,您必须在要使用的索引中添加新的HashMaps那个指数。

答案 1 :(得分:2)

正如凯文所说,你从未在ArrayList中添加任何东西。你的代码看起来应该是这样......

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

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

在之前的解决方案中,您正在调用data.set(currRec,temp);假设在ArrayList的位置currRec中有一个HashMap元素。如果你还没有在ArrayList中放置任何东西,那么就没有元素currRec。