2013-04-23 98 views
-3

我正在使用java 1.6。我有一個Employee模型如下圖所示:Java 1.6:根據模型值對模型列表進行排序

private String id; 
private String firstName; 
private String lastName; 
private String phoneNumber; 
//getters and setters 

List<Employee>包含了所有的員工數據從數據庫中獲取。

我需要搜索List<Employee>中存在的一個或多個員工(類似於員工搜索功能,搜索必須在List<Employee>上完成,而不是按照搜索條件再次搜索數據庫)。截至目前,我不希望搜索List<Employee>的員工。但如果它變得複雜,那麼我必須去分貝命中。

現在無論我想到的是一個緩慢的邏輯,如:通過List<Employee>迭代和每個Employee繼續搜索的搜索標準值,如果匹配然後將其添加到一個新的List<Employee>(這會給我搜索結果)。

我想知道是否有一些達到相同的最佳方式。請讓我知道這件事。

+0

您可以嘗試執行二進制搜索。爲了排序列表,您可以讓您的員工類實現Comparable界面。 – prashant 2013-04-23 18:22:37

+6

這與servlet和web服務有什麼關係?此外,標題提到了「排序」,這個問題提到了過濾。 – leonbloy 2013-04-23 18:22:47

+0

您可以創建自己的索引。每個索引都是一個'Map',鍵是你想要搜索的值,值是'Employee'對象。這取決於您希望在每次搜索的時間,使用的內存空間和時間之間進行權衡。考慮有多少員工也是如此。 – 2013-04-23 18:25:53

回答

1

排序:http://docs.oracle.com/javase/6/docs/api/java/util/Comparator.html

class EmployeeComparator implements Comparator<Employee>{ 

    public int compareTo(Employee o1,Employee o2){ 
     return o1.lastName.compareTo(o2.lastNam); 
    } 

} 

和:

Collections.sort(listOfEmplyees, new EmplyeeComparator); 

但我不明白,這將如何通過你的搜索幫助。至少它現在排序。

相關問題