Arrays.sort()排序问题

针对基本数据类型的Arrays.sort()方法中,使用方式如下:Arrays.sort(数组)

以上的数组类型基本数据类型的数组

以上排序是按照从小到大的顺序来排列数组的

如: int[] arrayToSort = new int[] { 48, 5, 89, 80, 81, 23, 45, 16, 2 };
        Arrays.sort(arrayToSort);

        排序后的顺序是:2,5,16,23,45,48,80,81,89

再如:String[] arrayToSort = new String[] { "Oscar", "Charlie", "Ryan","Adam", "David","aff","Aff" };

           Arrays.sort(arrayToSort);

           排序后的顺序是:Adam,Aff,Charlie,David,Oscar,Ryan,aff

以上是针对基本数据类型的数组使用排序的情况,对象数组使用此排序与基本数据类型不相同。

对象数组假如想要使用Array.sort()方法进行排序的话需要使用   implement Comparator ,所以得重载 compareTo() 这个方法 

         所以排序使用方法如下:

要针对对象数组进行排序:

   Dog o1 = new Dog("dog1", 1);
   Dog o2 = new Dog("dog2", 4);
   Dog o3 = new Dog("dog3", 5);
   Dog o4 = new Dog("dog4", 2);
   Dog o5 = new Dog("dog5", 3);
   Dog[] dogs = new Dog[] { o1, o2, o3, o4, o5 };

要针对这个对象使用自定义的排序规则,那么就需要

class ByWeightComparator implements Comparator {
public final int compare(Object pFirst, Object pSecond) {

       }

}

然后再使用已经定义好的排序规则针对对象数组进行排序

Arrays.sort(dogs, new ByWeightComparator());

猜你喜欢

转载自liuzhiqiang19890403.iteye.com/blog/2183688