2017-08-05 54 views
0

我有兩個不同勢ArrayList讓說:結合了兩種不同的數組列表和排序基於時間

現在我想這兩數組列表結合起來,一個和它訪問的每個數據。 這是我曾經嘗試過,

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我要根據時間對它們進行排序。我在Arraylist中都有_time對象,並且它返回的時間類似於此格式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; 
    } 
} 
+0

而你認爲包括錯誤信息並不重要的原因是...... –

+0

抱歉編輯問題 –

+0

啊。你真的不應該像這樣組合列表類型。爲什麼他們不能分開? –

回答

3

第一:請按照Java naming convention。 類應該以大寫字母開頭,變量以小寫字母開頭。
除了_允許但不建議。


關於您的問題。

ListObject中存儲特定類的實例違反了使用泛型的目的。

如果你想存儲和排序model_tasks_pendingmodel_tasks的兩個實例,你應該根據接口進行推理。
引入所有必需方法的通用接口,並使這些類實現它。

通過這種方式,你可以更換:

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

由:

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

其中MyModelTask是通用接口。

這樣,你可以訪問到MyModelTask定義的任何方法,你可以通過定義一個Comparator更具體Comparator<MyModelTask>如果你想既類的實例排序排序MyModelTask

+0

如果我正確理解你的答案,我必須創建一個接口類MyModelTask​​並實現類 –

+0

你可以根據你的需要命名,但是這個想法就在那裏。關於'get_creat_on()',只在'model_tasks_pending'中定義,你有幾個選擇可以在沒有實際實現的類中實現它:返回null,默認值或者甚至在接口中添加一個方法來識別實例的類型等等......但是由於您沒有提供關於應該如何評估的細節,因此很難提出一種解決方案而不是另一種解決方案。 – davidxxx

+0

這兩個類都有_time,它會以特定格式返回時間。我想根據那個時間對新創建的列表進行排序。 –