我正在尝试将多个hashmap对象添加到列表中。第一个添加OK。但是在下一轮比赛中它会因异常错误" 5"而崩溃。我确实为每一轮创建了一个新的hshmap对象,但它仍然崩溃。
HashMap<String, Object> data;
ArrayList<HashMap<String, Object>> dataList = new ArrayList<HashMap<String, Object>>();
for(int i=0;i<iCount;i++)
{
arrRow = resSearchItems.get(i).split("\\^");
{
data = new HashMap<String, Object>();
data.put("ResNumber", arrRow[0]);
data.put("MeetingType#", arrRow[1]);
data.put("Topic", arrRow[2]);
data.put("MeetingDate", arrRow[3]);
data.put("Motion", arrRow[4]);
data.put("Votes", arrRow[5]);
dataList.add(data);
}
}
谢谢
答案 0 :(得分:0)
您应该将arrRow.length -1
检查为要访问阵列的最大索引。如果此值小于5
,那么您将获得ArrayIndexOutOfBoundsException
。
答案 1 :(得分:0)
两个想法:
iCount
来自哪里?尝试使用以下方法替换方法调用以检索数据:
arrRow = "one^two^three^four^five^six".split("\\\\^");
并查看您的代码是否仍然崩溃。这编译并运行正常:
import java.util.HashMap;
import java.util.ArrayList;
public class HashmapTest {
public static void main(String args[]) {
HashMap<String, Object> data;
ArrayList<HashMap<String, Object>> dataList = new ArrayList<HashMap<String, Object>>();
String[] arrRow;
int iCount = 4;
for(int i=0;i<iCount;i++) {
arrRow = "one^two^three^four^five^six".split("\\^");
data = new HashMap<String, Object>();
data.put("ResNumber", arrRow[0]);
data.put("MeetingType#", arrRow[1]);
data.put("Topic", arrRow[2]);
data.put("MeetingDate", arrRow[3]);
data.put("Motion", arrRow[4]);
data.put("Votes", arrRow[5]);
dataList.add(data);
}
System.out.println("hashmap count:" + dataList.size());
}
}
这是某种抓取数据吗?如果每个resSearchItems
字符串不包含6个项目,您可能需要尝试以下内容:
HashMap<String, Object> data;
ArrayList<HashMap<String, Object>> dataList = new ArrayList<HashMap<String, Object>>();
String[] hashKeys = {"ResNumber","MeetingType#","Topic","MeetingDate","Motion","Votes"};
for(int i=0;i<iCount;i++) {
arrRow = resSearchItems.get(i).split("\\^");
data = new HashMap<String, Object>();
for(int j=0;j<arrRow.length && j<hashKeys.length;j++)
data.put(hashKeys[j], arrRow[j]);
dataList.add(data);
}
答案 2 :(得分:0)
resSearchItems.get(i)
其中i = 1
可能会返回null
,我们无法猜测。此外,如果arrRow
不包含6个或更多元素,则会抛出java.lang.ArrayIndexOutOfBoundsException
。