在List中寻找价值

Jåc*_*cob 3 java collections list

我将List声明为

        private List<Employees> employees;
Run Code Online (Sandbox Code Playgroud)

并在我使用DAO从数据库获取值

        employees= new ArrayList<Employees>();
        employees.addAll(myDAO.getEmployees());
Run Code Online (Sandbox Code Playgroud)

我想搜索一个值,查找值employees List的最佳方法是什么employees List

我试过了

    Collections.sort(employees);
    int index = Collections.binarySearch(employees, "abc");
Run Code Online (Sandbox Code Playgroud)

但是我得到了施法异常

任何帮助都非常感谢.

谢谢

Sub*_*der 6

Collections.sort(employees); // BigO - nlog(n)
int index = Collections.binarySearch(employees, new Employee("abc",...)); // BigO - log(n)
Run Code Online (Sandbox Code Playgroud)

如果你解决您的每一次列表和搜索它,代码的复杂性将是nlog(n) + log(n)其中nlog(n)的分类列表和log(n)二进制搜索.

如果您线性搜索列表会更好.班轮搜索将采取BigO - n比以前的方法更好的表现.


你得到cast ExceptionCollections#sort方法,因为你的列表中包含null value其无法施展员工和提高ClassCastException

  • `"abc"`你应该传递`Employee Object` .binarySearch(List <?extends Comparable <?super T >> list,T key)` (2认同)