Arrays.sort()的用法

如果是普通类型的数据进行排序直接用即可.(但是想要用自己的顺序排就要重写下面一样的方法)

如果要对对象进行排序就要重写接口Comparable中的public int compareTo(Object o)方法或Comparator中的public int compare(Object obj1,Object obj2)方法,例子如下:

这是继承Comparable类的写法

Code:
  1. publicclassarray_Sort_ComparableimplementsComparable<Object>{
  2. privateintvalue;
  3. privateStringname;
  4. publicarray_Sort_Comparable(intv,Strings){
  5. value=v;
  6. name=s;
  7. }
  8. publicStringgetName(){
  9. returnname;
  10. }
  11. @Override
  12. publicintcompareTo(Objecto){
  13. if(this.value>((array_Sort_Comparable)o).value){
  14. return1;
  15. }
  16. else
  17. return-1;
  18. }
  19. publicStringtoString(){
  20. returnname+":"+value;
  21. }
  22. }

这是继承Comparator的写法

Code:
  1. importjava.util.Comparator;
  2. publicclassarray_Sort_ComparatorimplementsComparator<Object>{
  3. publicintcompare(Objectobj1,Objectobj2){
  4. array_Sort_Comparableo1=(array_Sort_Comparable)obj1;
  5. array_Sort_Comparableo2=(array_Sort_Comparable)obj2;
  6. if(o1.getName().charAt(1)>o2.getName().charAt(1))
  7. return1;
  8. else
  9. return-1;
  10. }
  11. }

这是用来测试的

Code:
  1. importjava.util.Arrays;
  2. publicclasstest{
  3. publicstaticvoidmain(String[]args){
  4. array_Sort_Comparable[]array=newarray_Sort_Comparable[2];
  5. array[0]=newarray_Sort_Comparable(10,"第一个物品");
  6. array[1]=newarray_Sort_Comparable(-10,"第二个物品");
  7. System.out.println("排序前:");
  8. for(array_Sort_Comparabletemp:array){
  9. System.out.println(temp);
  10. }
  11. Arrays.sort(array);//这是继承Comparable的用法
  12. System.out.println("用value排序后:");
  13. for(array_Sort_Comparabletemp:array){
  14. System.out.println(temp);
  15. }
  16. Arrays.sort(array,newarray_Sort_Comparator());//这是继承Comparator的用法
  17. System.out.println("用name排序后:");
  18. for(array_Sort_Comparabletemp:array){
  19. System.out.println(temp);
  20. }
  21. }
  22. }

通过上面的例子,理解他们的机制就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值