2014-10-31 36 views
-1

我有兩種不同的方法可以從兩個不同的DB表中獲取數據。我將使用bean類將兩個數據添加到相同的ArrayList如何在Java中對Arraylist進行排序

List<LeadVO> leadvoList = new ArrayList<LeadVO>(); // array list declaration 

while loop我將加載使用bean類的所有數據。在此操作之前,我將爲兩個表啓動查詢。

while(true){ 
    LeadVO statusVO = new LeadVO(); //initializing bean class 

// code to load all value using setters 

最後,我將這個bean添加到array list

leadvoList.add(statusVO); 

創建獨立的類比較

公共類ComparatorDAO實現比較{

public int compare(LeadVO arg0, LeadVO arg1) { 


    return arg1.getCreatedtimeFormat().compareTo(arg0.getCreatedtimeFormat()) ; 

} 

}

Collections.sort(commentVOList,new ComparatorDAO()); //排序方法

理想,這將按照日期排序不相信這將處理日期字符串

請再次幫助我,這

感謝

現在我需要解決這按列表中已經存在的日期順序列出。我的意思是列表中的日期。

+1

喜歡[即](HTTP字段中的方法: //stackoverflow.com/questions/2784514/sort-arraylist-of-custom-objects-by-property)? – John 2014-10-31 13:49:23

+0

@Manju我剛剛更新了你的代碼,因爲我沒有測試,所以可能會出現一些小的語法錯誤。 – Lokesh 2014-10-31 13:56:14

回答

1

如果您LeadVO包含要排序的日期,在你的VO實現Comparable接口然後使用Collections.sort()對VO集合進行排序。

public class LeadVO implements Comparable<LeadVO> { 
    private Date date; 

    // other properties, getters and setters 

    @Override 
    public int compareTo(LeadVO other) { 
     return date.compareTo(other.getDate()); 
    } 
} 

和排序是這樣的:

Collections.sort(leadVoList); 

理論上,應該添加null檢查或使用類似ObjectUtils.compare從公共浪,如果你的日期,但不保證非空。

此外,您可以通過創建Comparator而不是實現Comparable來達到這一目的,如其他海報所示,如果您需要按多個值對VO進行排序,這可能會更好。如果你只需要按日期排序,這種方法可能會更簡單一些。

0

下面是例子:希望你不要介意硬解釋。

List<String> unsortList = new ArrayList<String>(); 

    unsortList.add("CCC"); 
    unsortList.add("111"); 
    unsortList.add("AAA"); 
    unsortList.add("BBB"); 
    unsortList.add("ccc"); 
    unsortList.add("bbb"); 
    unsortList.add("aaa"); 
    unsortList.add("333"); 
    unsortList.add("222"); 

    //before sort 
    System.out.println("ArrayList is unsort"); 
    for(String temp: unsortList){ 
     System.out.println(temp); 
    } 

    //sort the list 
    Collections.sort(unsortList); 

    //after sorted 
    System.out.println("ArrayList is sorted"); 
    for(String temp: unsortList){ 
     System.out.println(temp); 
    } 
} 
0

您可以按使用ArrayList的比較:

​​

然後:

Collections.sort(list, new RecordComparator()); 
0

日子會把需要重寫這個類compareTo方法,因爲它是哪個Java着眼於用於分揀

只需重寫u需要排序

compareTo(Object other){Someclass.somefield.compareTo(other.smeField)} 
+0

Sry在我的手機上,也省略了空檢等 – MRK187 2014-10-31 13:58:58

相關問題