android - 在 Android 中按日期对数组列表项进行分组

标签 android list date group-by

在我的程序中,我有一个 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/

相关文章:

android - 在 Android 2.2 中插入联系人

android - 启用可访问性时使超链接可点击

entity-framework - Entity Framework 日期时间与 SQL Server 日期

javascript - 如何使用div在javascript中显示当前月份,年份

android - 升级 NDK 版本时是否应该重建所有库?

android - 哪些 android 类用于控制 wifi 热点?

python - 在某些条件下从列表中提取数据

python - 如何在二维列表的项目中追加内容?

python - 如果列表中的项目位于另一个列表中,则将其从列表中删除,同时保留重复项 - Python

PHP/SQL 创建日期与修改日期