在我的程序中,我有一个 Program 类型的数组列表,如下所示:
List<Program> programList= new ArrayList<Program>();
public class Program {
public String name;
public String date;
public Program(String name, String date) {
this.name = name;
this.date= date;
}
public String date getDate()
{
return date;
}
public String date setDate(String date)
{
this.date=date;
}
public String date getName()
{
return name;
}
public String date setName(String name)
{
this.name=name;
}
在我的 Activity 中,我正在向列表中添加项目
for(int i=0; i < 100; i++)
{
Program p= new Program("name","some date");
programList.add(p):
}
我想按日期对项目进行分组,就像列表中有数百个项目并且其中许多具有相同的日期,我想将日期和具有相同日期的项目的新列表配对。
最佳答案
您可以使用 HashMap
并使用 String date
作为键,作为值,您可以使用 ArrayList<Program>
. HashMap.get(key)
如果具有该键的对象不存在,将返回 null。如果它返回 null,您应该创建一个新的 ArraList 并将其放入具有该键的 HashMap 中。如果没有,您应该使用返回的对象来添加 Programm
实例
例如
HashMap<String, ArrayList<Programm>> myProgram = new HashMap<String, ArrayList<Programm>>() ;
for(int i=0; i < 100; i++)
{
String date = "your date";
ArrayList<Programm> programList = myProgram.get(date);
if (programList == null) {
programList = new ArrayList<Programm>();
myProgram.put(date, programList);
}
Program p= new Program("name","some date");
programList.add(p):
}
检查错别字
关于android - 在 Android 中按日期对数组列表项进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14137588/