有人能告诉我下面的代码有什么问题吗?当我在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
...
答案 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。