一、java中排序------>Collections.sort方法
1、实现了Comparable接口的对象
List<String> strList = new LinkedList<>();
..........
Collections.sort(strList);
Collections.sort(strList, Collections.reverseOrder());//逆序
因为,String实现了Comparable接口,所以上例会按字典顺序排序
2、没有实现Comparable接口的自定义对象
public static void main(String[] args) { List<Persion> persionList = new ArrayList<Persion>(); persionList.add(new Persion("zdchu", 27)); persionList.add(new Persion("wangli", 26)); persionList.add(new Persion("gold", 100)); Comparator<Persion> persionComparator = new Comparator<Persion>() { public int compare(Persion o1, Persion o2) { return o1.getAge() - o2.getAge(); } }; Collections.sort(persionList, persionComparator); System.out.println(persionList); Collections.sort(persionList, Collections.reverseOrder(persionComparator));//逆序 System.out.println(persionList); }
二、java中二分查找------->Collections.binarySearch方法
二分查找条件:顺序表(随机访问)+ 有序
如果为binarySearch提供一个链表,则底层自动转变为线性查找
i = Collections.binarySearch(c, key);
i = Collections.binarySearch(c, key, comparator);