排序
LinkedList<String> staff = new LinkedList<>();
// 填充List
// 用salary 字段排序
staff.sort(Comparator.comparingDouble(Employee::getSalary));
// 按salary 降序排序
staff.sort(Comparator.comparingDouble(Employee::getSalary).reversed());
// 按自然顺序的降序排序
staff.sort(Comparator.reverseOrder());
二分查找
Collections 的静态方法 binarySearch 用于从排好序的 List 中查找指定元素。如果 List 中的排序不是按照 自然顺序排序(用 Comparable 接口的 compareTo 方法进行排序),那么还需要提供一个 Comparator。
// 参数 c 是一个 List 对象,element 是要找的元素
i = Collections.binarySearch(c, element);
i = Collections.binarySearch(c, element, comparator);
binarySearch 方法如果找到了指定的元素,就返回那个元素的索引;如果没找到,就返回一个负数,根据这个负数,可以将元素添加到正确的排序位置上:
if(i < 0)
c.add(-i - 1, element); // -i-1 就是被查找的那个元素在 List 中的排序位置