2013-04-23 100 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); 

但我不明白,这将如何通过你的搜索帮助。至少它现在排序。

相关问题