Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java1.6:根据模型值对模型列表进行排序_Java_Algorithm_Search_Collections - Fatal编程技术网

Java1.6:根据模型值对模型列表进行排序

Java1.6:根据模型值对模型列表进行排序,java,algorithm,search,collections,Java,Algorithm,Search,Collections,我正在使用Java1.6。我有一个员工模型,如下所示: private String id; private String firstName; private String lastName; private String phoneNumber; //getters and setters 列表包含从数据库获取的所有员工数据 我需要搜索列表中的一名或多名员工(类似于员工搜索功能,搜索必须在列表中进行,而不是在另一个数据库中点击搜索条件)。到目前为止,我不希望从列表中搜索员工时出现任何DB命

我正在使用Java1.6。我有一个
员工
模型,如下所示:

private String id;
private String firstName;
private String lastName;
private String phoneNumber;
//getters and setters
列表
包含从数据库获取的所有员工数据

我需要搜索
列表中的一名或多名员工(类似于员工搜索功能,搜索必须在
列表中进行,而不是在另一个数据库中点击搜索条件)。到目前为止,我不希望从
列表
中搜索员工时出现任何DB命中。但是如果它变得复杂,那么我就得去做db

现在我想到的是一个缓慢的逻辑,比如:遍历
列表
,并为每个
员工
继续搜索搜索条件的值,如果匹配,则将其添加到新的
列表
(这将给出搜索结果)

我想知道是否有达到同样效果的最佳方法。请让我知道这一点。

排序:


但我不明白,这对你的搜索有什么帮助。至少现在已经排序了。

您可以尝试实现二进制搜索。为了对列表进行排序,您可以让employee类实现可比较的接口。这与servlet和web服务有什么关系??此外,标题谈到“排序”,问题谈到筛选。您可以创建自己的索引。每个索引都是一个
映射
,其中键是要搜索的值,值是
Employee
对象。这取决于您希望在前期时间、使用的内存空间和每次搜索的时间之间进行权衡。考虑一下那里有多少员工。
class EmployeeComparator implements Comparator<Employee>{

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

}
Collections.sort(listOfEmplyees, new EmplyeeComparator);