总结一下java 中的两种排序工具:
Arrays.sort() : 主要针对 数组类型排序,如果数组里面的元素是对象,要按对象属性排序的话,需要重写 Comparator() 函数,重写里面的 int compare()函数;
Collections.sort(): 主要是针对集合排序,如:list。 当然如果数组 array[i] 的每项是一个list 也可以直接用。与Arrays.sort()一样,重写 Comparator()函数。
注意:两种方式重写的函数方式是一样的,单词不要写错哟: Comparator,compare
import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Main1 { public static void main(String[] args) { man[] mans = new man[3]; mans[0] = new man(1); mans[1] = new man(24); mans[2] = new man(5); Comparator<man> cmp = new My_Comparator (); //对象数组排序: Arrays.sort(mans, cmp); for(man i : mans) { System.out.print(i.a + ", "); } System.out.println("---------"); //对象链表排序: List<man> list = new ArrayList<>(); list.add(new man(3)); list.add(new man(2)); list.add(new man(1)); // Collections.sort(list, new Comparator<man>() { // public int compare(man x, man y) { // return y.a - x.a; // } // }); // 将上面的简化为下面的: Collections.sort(list, cmp); for(man i : list) { System.out.print(i.a + "; "); } } } class My_Comparator implements Comparator<man>{ @Override public int compare(man o1, man o2) { return o2.a - o1.a; } } class man{ public int a; man(int x){ this.a = x; } }
原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/10459441.html
时间: 2024-10-31 03:40:05