2013-08-02 58 views
0

我試圖從最近的日期(例如最後一個星期一)收集我的列表(或組)中的數據。所以我可以將值添加到一起,然後將新值插回到列表中。從最近的日期檢索列表中的數據java

目前我輸出看起來像這樣

ID Date  charge balance 
1 29/07/2013 10  100 
2 29/07/2013 20  200 
3 29/07/2013 30  300 

給予或採取一些列。主要目的是將例如第29位的條目分組,向餘額添加費用,以新的餘額和系統日期創建新的條目/字段/行。

到目前爲止,我已經創建了我的列表,並且能夠使用掃描器從csv中讀取條目,但我不知道如何獲取沒有硬編碼的日期的代碼。

public class Statements { 

    public int tncy_num; 
    //public double net_rent; 
    public String end_date; 
    public double bal_val; 
    public double chg_val; 

    public Statements(int t, String ed, double bv , double cv){ 
     tncy_num = t; 
     //net_rent = nr; 
     end_date = ed; 
     bal_val = bv; 
     chg_val= cv; 
    } 

    public int getTncynum(){return tncy_num;} 
    //public double getNetRentnum(){return net_rent;} 
    public String getEndDatenum(){return end_date;} 
    public double getBalValnum(){return bal_val;} 
    public double getChgValnum(){return chg_val;} 
    //public double getBenfValnum(){return benf_val;} 
    //public double getAdjVal(){return adj_val;} 
    //public double getTotlValnum(){return totl_val;} 

    public String toString(){  
     return " "+this.getTncynum()+ 
       " "+this.getEndDatenum()+ 
       " "+this.getBalValnum()+ 
       " "+this.getChgValnum(); 
    } 

} 

我有擁有的主要方法(使用簡單的運行腳本),用來獲取數據並設置CSV文件和其他類的其返回的數據的位置的協調類主要動力類的名單。

public class Calculations { 
private Coordinator cord; 
private ArrayList Data; 

public Calculations(Coordinator co) { 
    cord =co; 
    Data = new ArrayList<Statements>(cord.getData()); 
    System.out.print(Data); 
} 
} 

回答

2

下面的例子:

Collections.sort(myList, new Comparator<Statements>() { 
    public int compare(Statements o1, Statements o2) { 
    if (o1.getEndDate() == null || o2.getEndDate() == null) 
     return 0; 
    return o1.getEndDate().compareTo(o2.getEndDate()); 
} 
}); 
+0

一個問題,你有沒有比較null僅僅作爲一個例子,也用返回數字,就是簡單地爲列表的索引@Rollyng –

+1

嗨,不要處理索引,我比較每個元素。如果你的一個對象語句在endDate屬性上有一個空值,它不能排序,所以我們把它放在最後。 – Rollyng