如果是普通类型的数据进行排序直接用即可.(但是想要用自己的顺序排就要重写下面一样的方法)
如果要对对象进行排序就要重写接口Comparable中的public int compareTo(Object o)方法或Comparator中的public int compare(Object obj1,Object obj2)方法,例子如下:
这是继承Comparable类的写法
- publicclassarray_Sort_ComparableimplementsComparable<Object>{
- privateintvalue;
- privateStringname;
- publicarray_Sort_Comparable(intv,Strings){
- value=v;
- name=s;
- }
- publicStringgetName(){
- returnname;
- }
- @Override
- publicintcompareTo(Objecto){
- if(this.value>((array_Sort_Comparable)o).value){
- return1;
- }
- else
- return-1;
- }
- publicStringtoString(){
- returnname+":"+value;
- }
- }
这是继承Comparator的写法
- importjava.util.Comparator;
- publicclassarray_Sort_ComparatorimplementsComparator<Object>{
- publicintcompare(Objectobj1,Objectobj2){
- array_Sort_Comparableo1=(array_Sort_Comparable)obj1;
- array_Sort_Comparableo2=(array_Sort_Comparable)obj2;
- if(o1.getName().charAt(1)>o2.getName().charAt(1))
- return1;
- else
- return-1;
- }
- }
这是用来测试的
- importjava.util.Arrays;
- publicclasstest{
- publicstaticvoidmain(String[]args){
- array_Sort_Comparable[]array=newarray_Sort_Comparable[2];
- array[0]=newarray_Sort_Comparable(10,"第一个物品");
- array[1]=newarray_Sort_Comparable(-10,"第二个物品");
- System.out.println("排序前:");
- for(array_Sort_Comparabletemp:array){
- System.out.println(temp);
- }
- Arrays.sort(array);//这是继承Comparable的用法
- System.out.println("用value排序后:");
- for(array_Sort_Comparabletemp:array){
- System.out.println(temp);
- }
- Arrays.sort(array,newarray_Sort_Comparator());//这是继承Comparator的用法
- System.out.println("用name排序后:");
- for(array_Sort_Comparabletemp:array){
- System.out.println(temp);
- }
- }
- }
通过上面的例子,理解他们的机制就可以了