39-java中Arrays.sort 和 collections.sort()总结
Posted zhumengdexiaobai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了39-java中Arrays.sort 和 collections.sort()总结相关的知识,希望对你有一定的参考价值。
总结一下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; } }
以上是关于39-java中Arrays.sort 和 collections.sort()总结的主要内容,如果未能解决你的问题,请参考以下文章
java中排序函数sort()使用,Arrays.sort()和Collections.sort()
关于Java中Collections.sort和Arrays.sort的稳定性问题
Java:Collections.sort和Arrays.sort的区别