有人可以帮助我解决我的问题,如何在while循环中创建List<Map<Integer, List<MyType>>
。我正在从数据库中选择数据并且我想添加对象,这些对象完成了将条件放入List中的选项,然后将其放入Map<Integer, List<MyType>
,其中map key在我的情况下是数据库列order_num中的整数。最后,我想将所有创建的地图添加到List中。方法的返回值为List<Map<Integer, List<MyType>>>
。
这是我的部分来源:
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>
。
答案 0 :(得分: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 );
答案 1 :(得分:0)
使用hashmap代替。我不确定这是否有效,但你至少可以尝试一下。
HashMap<Integer, ArrayList<MyClass>> myMap = new HashMap<Integer, ArrayList<MyClass>>();
也许这也有帮助: http://www.roseindia.net/javatutorials/javahashmap.shtml