Java 如何从具有相同类别的对象的arraylist中提取元素?
我在sqlite数据库中有一个表,它包含五个不同的列,如下所示Java 如何从具有相同类别的对象的arraylist中提取元素?,java,android,sqlite,collections,Java,Android,Sqlite,Collections,我在sqlite数据库中有一个表,它包含五个不同的列,如下所示 CATEGORY NOTE DATE PRICE MODE travel delhi 10/5/2011 800 cash food daily 9/5/2011 500 cash travel goa 12/5/2011 1000 cash 数据库中的值由运行
CATEGORY NOTE DATE PRICE MODE
travel delhi 10/5/2011 800 cash
food daily 9/5/2011 500 cash
travel goa 12/5/2011 1000 cash
数据库中的值由运行时从用户添加。毕竟,我通过内容提供者检索它,并将其存储到ArrayList中,并显示在listview中。但现在我想按类别显示它意味着我想在下面显示一个类别,它的所有任务,然后是下一个类别&它的任务如下。Item是一个类,它包含所有列名作为数据成员&其setter和getter。任何帮助都将不胜感激。您可以使用分类列上的
分组依据
子句根据分类对结果进行分组使用番石榴的方法。它将创建一个多重映射,即以类别作为键,以项目列表作为值的映射
如果您不能使用番石榴,请按照此方法操作:
- 创建一个
,其中键是类别地图
- 遍历项目列表,并将每个项目放置在地图中
Map<String, List<Item>> itemsByCategory = new LinkedHashMap<String, List<Item>>();
for (Item item : theListOfItems) {
String category = item.getCategory();
List<Item> itemsOfCategory = itemsByCategory.get(category);
if (itemsOfCategory == null) {
itemsOfCategory = new ArrayList<Item>();
itemsByCategory.put(category, itemsOfCategory);
}
itemsOfCategory.add(item);
}
for (Map.Entry<String, List<Item>> entry : itemsByCategory.entrySet()) {
System.out.println("Category " + entry.getKey() + ":");
for (Item item : entry.getValue()) {
System.out.println(" Item : " + item);
}
}
Map itemsByCategory=newlinkedhashmap();
对于(项目:列表项){
字符串类别=item.getCategory();
List itemsOfCategory=itemsByCategory.get(category);
if(itemsOfCategory==null){
itemsOfCategory=new ArrayList();
itemsByCategory.put(类别,itemsOfCategory);
}
itemsOfCategory.添加(项目);
}
对于(Map.Entry:itemsByCategory.entrySet()){
System.out.println(“Category”+entry.getKey()+”:”;
对于(项:entry.getValue()){
系统输出打印项次(“项:+项);
}
}
首先创建映射类-
class CategoryMapper
{
String categoryName;
ArrayList<User> usersForThisCategory;
}
类类别映射器
{
字符串类别名称;
ArrayList用户用于分类;
}
现在,从数据库中检索数据并添加到相应的类别映射器中
您可以使用另一个数组,其中包含类别的数量和属于该类别的项目。谢谢回复。这里的用户是什么,请您解释一下。谢谢回复。在我看来,第二种方法比第一种方法更容易理解,你能给出一些代码或教程的例子吗?这正是我想要的解决方案。非常感谢,这对我来说很好。。。。。。。。。。。。!!!谢谢你的回复。但是我的查询不包含GROUPBY子句。我正在使用resolver.query(EXPENSE\u URI,新字符串[]{EXPENSE\u CATEGORY,EXPENSE\u DATE,EXPENSE\u PRICE},null,null,EXPENSE\u CATEGORY);用于从数据库中获取值。