按日期对ArrayList <object>进行排序,其中包含两个不同的对象类

时间:2016-01-28 19:31:58

标签: java android

我有两个Model类,我要添加到ArrayList项目,两个模型类都有一个getDate(),我想按日期对列表进行排序。我已经去了一段时间,但似乎无法得到它。

    ArrayList<Object> items = new ArrayList<>();
    ArrayList<LiftDate> liftDates = LiftDateHandler.get(getActivity()).getDate();
    ArrayList<OneRepMax> oneRepMaxes = OneRepMaxHandler.get(getActivity()).getORM();
    items.addAll(liftDates);
    items.addAll(oneRepMaxes);

LiftDate.class和OneRepMax.class都包含:

public Date getDate() {
    return mDate;
}

如何根据两个对象getDate()对ArrayList项进行排序?

1 个答案:

答案 0 :(得分:2)

第1步:定义interfaceLiftDate都实现的公共OneRepMax。此界面应包含getDate()。我将在此答案中使用Snicklefritz作为此接口的名称;你应该为你的应用选择更有意义的东西。

第2步:让items成为ArrayList<Snicklefritz>

步骤3:使用Comparator<Snicklefritz>实施执行日期比较的getDate()

第4步:Use Collections.sort()使用ArrayListComparator进行排序。