2015-10-25 2 views
0

У меня есть LinkedHashMap, и я хочу, чтобы вставить List из String сек только некоторые из «заголовков» моих расширяемых, но по некоторым причинам я не могу, и я получаю ошибкуLinkedHashMap: вставить Список строк

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(...) и все продукты были добавлены все ключи. Вы можете помочь?

+2

Nit: вам не нужно иметь условное 'if (produtos.size()> 0)', потому что цикл for проверяет его в любом случае. –

ответ

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() равен нулю, то цикл будет итерацию ноль раз в любом случае.

+0

Нет .. потому что я хочу вставить свой список продуктов в определенную категорию. Не во всех категориях есть продукты ... поэтому у меня есть «я», чтобы определить правильную категорию для вставки моих продуктов. И изменив его на j, как вы сказали, я также получаю ошибку. – porthfind

+0

@porthfind Конечно, вы не можете использовать 'produtos.get (i) .getNameProducto()' с индексом 'i' beacuse, который * будет * вызывать исключение. – Linus

+0

Вы правы, я, хотя вы говорили о первом «i» на category_header.add. Но даже в этом случае я продолжаю с той же ошибкой, с другим индексом ... Недопустимый индекс 10, размер 0 – porthfind

Смежные вопросы