我有一个LinkedHashMap,我想在我的可扩展列表的某些“标题”中插入一个List
String
,但出于某种原因,我不能,我得到了错误
java.lang.IndexOutOfBoundsException: Invalid index 10, size is 1
LinkedHashMap <String, List<String>> expandableListDetail2 = new LinkedHashMap<String, List<String>>();
List<String> category_header = new ArrayList<String>();
List<Producto> produtos;
Database db = new Database(context);
List<Categorias> categories;
categories = db.getAllCategorias();
for (int i=0; i<categories.size(); i++){
expandableListDetail2.put(categories.get(i).toString(), category_header);
produtos = db.getAllProductos(categories.get(i).toString());
for(int j=0;j<produtos.size();j++) {
category_header.add(i, produtos.get(i).getNameProducto());
}
}
我在category_header.add(...)
所在的行上收到错误,并且所有产品都已添加到所有密钥中。你能帮忙吗?
答案 0 :(得分:3)
您正在使用的i
使用j
if (produtos.size() > 0) {
for(int j=0;j<produtos.size();j++) {
category_header.add(i, produtos.get(j).getNameProducto());
}
}
还有一个额外的if (produtos.size() > 0) {
是不必要的,因为如果produtos.size()
为零,for循环将无论如何迭代零次。