Arrays.sort用法

本文提供了一个Java程序示例,展示了如何对整数型数组、字符型数组和对象数组进行排序。通过对不同类型的数组使用Arrays.sort方法及自定义比较器,实现了有效排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package  test;

import  java.util.Arrays;
import  java.util.Comparator;

public   class  ArraySortDemo {
/**
* 整数型数组排序
*/
public   void  sortIntArray() {
   
int [] arrayToSort  =   new   int [] {  48 5 89 80 81 23 45 16 2  };
   System.out.println(
" 整数型数组排序,排序前: " );
   
for  ( int  i  =   0 ; i  <  arrayToSort.length; i ++ ){
    System.out.print(arrayToSort[i]
+ " , " );
   }
   
//  调用数组的静态排序方法sort
  Arrays.sort(arrayToSort);
   System.out.println();
   System.out.println(
" 排序后: " );
   
for  ( int  i  =   0 ; i  <  arrayToSort.length; i ++ ){
    System.out.print(arrayToSort[i]
+ " , " );
   }
}

/**
* 字符型数组排序demo
*/
public   void  sortStringArray() {
   String[] arrayToSort 
=   new  String[] {  " Oscar " " Charlie " " Ryan " ,
     
" Adam " " David " , " aff " , " Aff "  };
   System.out.println();
   System.out.println(
" 字符型数组排序,排序前: " );
   
for  ( int  i  =   0 ; i  <  arrayToSort.length; i ++ ){
    System.out.print(arrayToSort[i]
+ " , " );
   }
   System.out.println();
   System.out.println(
" 排序后: " );
   
//  调用数组的静态排序方法sort
   Arrays.sort(arrayToSort);

   
for  ( int  i  =   0 ; i  <  arrayToSort.length; i ++ ){
    System.out.print(arrayToSort[i]
+ " , " );
   }
}

/**
* 对象数组排序demo
*/
public   void  sortObjectArray() {
   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 };
   System.out.println();
   System.out.println(
" 对象数组排序排序前: " );
   
for  ( int  i  =   0 ; i  <  dogs.length; i ++ ) {
    Dog dog 
=  dogs[i];
    System.out.print(dog.getName()
+ " [ " + dog.getWeight() + " ], " );
   }
   Arrays.sort(dogs, 
new  ByWeightComparator());
   System.out.println();
   System.out.println(
" 排序后: " );
   
for  ( int  i  =   0 ; i  <  dogs.length; i ++ ) {
    Dog dog 
=  dogs[i];
    System.out.print(dog.getName()
+ " [ " + dog.getWeight() + " ], " );
   }
}

public   static   void  main(String[] args) {
   ArraySortDemo t 
=   new  ArraySortDemo();
   t.sortIntArray();
   t.sortStringArray();
   t.sortObjectArray();
}
}

/**
* 定义了一个Dog类
*/
class  Dog {
private  String name;
private   int  weight;

public  Dog(String name,  int  weight) {
   
this .setName(name);
   
this .weight  =  weight;
}

public   int  getWeight() {
   
return  weight;
}

public   void  setWeight( int  weight) {
   
this .weight  =  weight;
}

public   void  setName(String name) {
   
this .name  =  name;
}

public  String getName() {
   
return  name;
}
}

/**
* 因为要对对象进行排序,所以要实现java.util.Comparator接口的compare(T o1, T o2)方法,在该方法中自定义排序算法。
*/
class  ByWeightComparator  implements  Comparator {
public   final   int  compare(Object pFirst, Object pSecond) {
   
int  aFirstWeight  =  ((Dog) pFirst).getWeight();
   
int  aSecondWeight  =  ((Dog) pSecond).getWeight();
   
int  diff  =  aFirstWeight  -  aSecondWeight;
   
if  (diff  >   0 )
    
return   1 ;
   
if  (diff  <   0 )
    
return   - 1 ;
   
else
    
return   0 ;
}
}

运行结果:

整数型数组排序,排序前:
48 , 5 , 89 , 80 , 81 , 23 , 45 , 16 , 2 ,
排序后:
2 , 5 , 16 , 23 , 45 , 48 , 80 , 81 , 89 ,
字符型数组排序,排序前:
Oscar,Charlie,Ryan,Adam,David,aff,Aff,
排序后:
Adam,Aff,Charlie,David,Oscar,Ryan,aff,
对象数组排序排序前:
dog1[
1 ],dog2[ 4 ],dog3[ 5 ],dog4[ 2 ],dog5[ 3 ],
排序后:
dog1[
1 ],dog4[ 2 ],dog5[ 3 ],dog2[ 4 ],dog3[ 5 ],
地方

List list  =   new  ArrayList() ;
list.add(
" abcd " ) ;
list.add(
" abdc " ) ;
list.add(
" aadf " ) ;
list.add(
" aabf " ) ;
/* 将list转为数组 */
String[] strs 
=   new  String[list.size()] ;
list.toArray(strs) ;
/* 排序,只排2<=索引<4之间的数据 */
Arrays.sort(strs,
2 , 4 ) ;
for (String str : strs){
System.out.println(str) ;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值