结合两个不同的阵列列表并根据时间排序

时间:2017-08-05 08:45:03

标签: java android arraylist

我有两个不同的ArrayList让我们说:

ArrayList<model_tasks_pending> Tasks = new ArrayList<model_tasks_pending>();
ArrayList<model_task> data = new ArrayList<model_task>();

现在我希望将这两个数组列表合并为一个并访问其中的每个数据。 这就是我尝试过的,

 private List<Object> Data = new ArrayList<>();
 Data.addAll(Tasks);
 Data.addAll(data);

这可以将所有数据转换为新列表。但我如何访问其中的数据?假设我想在get_creat_on()

中访问Tasks
Data.get(0).get_creat_on()

但显示错误cannot resolve get_creat_on()

在合并两个Arraylist后,我想根据时间对它们进行排序。我在_time中都有Arraylist个对象,并且它返回的格式为08:33 AM。关于如何实现这个目标的任何公会?

模态类:

model_task.java

public class model_task {
    int _id;
    String _title;
    String _body;
    String _time;

    public String get_time() {
            return _time;
        }
    public int get_id() {
        return _id;
    }
    public String get_title() {
        return _title;
    } 
    public String get_body() {
        return _body;
    }
}

model_tasks_pending.java

 public class model_tasks_pending{
        int _id;
        String _title;
        String _creat_on;
        String _time;

    public String get_time() {
            return _time;
        }
    public String get_creat_on() {
        return _creat_on;
    }
    public int get_id() {
        return _id;
    }

    public String get_title() {
        return _title;
    }

    public String get_body() {
        return _body;
    }
}

1 个答案:

答案 0 :(得分:3)

首先:请关注Java naming convention。 类应以大写开头,变量以小写开头 除了_允许但不建议。

关于你的问题。

List Object中存储特定类的实例会破坏使用泛型的目的。

如果您希望对model_tasks_pendingmodel_tasks的两个实例进行存储和排序,则应根据界面进行推理。
引入一个包含所有必需方法的通用接口,并使这些类实现它。

通过这种方式,您可以替换:

 private List<Object> Data = new ArrayList<>();

by:

 private List<MyModelTask> Data = new ArrayList<>();

其中MyModelTask是通用界面。

通过这种方式,您可以访问MyModelTask中定义的任何方法,如果要对实例进行排序,可以通过定义Comparator,更具体地MyModelTask来排序Comparator<MyModelTask>两个班级。