2013-01-02 40 views
0

有人可以帮我解决我的问题,如何在while循环中创建List<Map<Integer, List<MyType>>。我正在从数据库中选择数据,我想添加对象,将select的where条件添加到List中,然后将其放入Map<Integer, List<MyType>,其中map key是我的从数据库列order_num中整数的整数。最后,我想将所有创建的地图添加到列表中。方法的返回值是List<Map<Integer, List<MyType>>>Android:创建列表<地图<字符串,列表<ObjectType>>

这里是我的源的一部分:

while (cursor.moveToNext) { 
     int id = cursor.getInt(cursor.getColumnIndex("item_id")); 
     int orderNum = cursor.getInt(cursor.getColumnIndex("order_num")); 
     String name = cursor.getString(cursor.getColumnIndex("item_name")); 

     list.add(new Item(id, orderNum, name); 
    } 

现在我想这个列表添加到地图,关键是orderNum和价值是List<Item>

回答

2

我声明ORDERNUM变量外循环,所以你可以循环完成时使用它:

int orderNum; 
for (cursor.moveToFirst; !cursor.isAfterLast(); cursor.moveToNext) 
{ 
    int id = cursor.getInt(cursor.getColumnIndex("item_id")); 
    orderNum = cursor.getInt(cursor.getColumnIndex("order_num")); 
    String name = cursor.getString(cursor.getColumnIndex("item_name")); 

    list.add(new Item(id, orderNum, name)); 
} 

map.put(orderNum, list); 

我估计整个区块会在某种循环了,所以当这个循环结束那么你可以做

masterList.add(map); 
+0

难道你不希望添加到循环内的地图吗?否则,您只会将一个数据集添加到地图中,而不是从数据库中的每一行添加。还是我误解了这个问题? – codeMagic

+0

正如我所理解的问题,他从数据库查询中创建了一个数据集列表,然后他希望将该列表添加到地图中,其中的每个条目都对应于他的一个查询。 – Ralgha

+0

+1可能是正确的:)我不确定OP是想要这样做的,所以我提出了这个建议,以防万一 – codeMagic

相关问题