LinkedHashMap:插入字符串列表

时间:2015-10-25 21:17:12

标签: java android

我有一个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(...)所在的行上收到错误,并且所有产品都已添加到所有密钥中。你能帮忙吗?

1 个答案:

答案 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循环将无论如何迭代零次。