java 对象数组的排序(实现Comparable接口)和二分查找

来源:互联网 发布:serializearray转json 编辑:程序博客网 时间:2024/06/04 17:52
package practice;import java.util.Arrays;import java.util.Comparator;/** * Created by fangjiejie on 2016/12/4. *///正常数组public class Array{    public static void main(String[] args) {        int a[]={1,2,4,5,3,8,9};        int b[]= Arrays.copyOf(a,2);        int c[]=new int[10];        System.arraycopy(a,2,c,0,3);        for(int i:c){            System.out.println(i);        }    }}//对象数组class AAA implements Comparable{//实现对对象的排序    @Override    public int compareTo(Object o) {//核心比较算法 0,<0,>0        AAA obj=(AAA)o;        /*if(this.age>obj.age){//按照age从小到大排            return 1;        }        else if(this.age=<obj.age){            return -1;        }*/        //return -(this.age-obj.age);//按照age从大到小排        //return this.age-obj.age;//按照age从小到大排        return this.age-obj.age==0?this.name.compareTo(obj.name):this.age-obj.age;                                  //按照age从小到大排,如果年龄相等按照name的字典序排序    }    int age;    String name;    AAA(){    }    public AAA(int age, String name) {        this.age = age;        this.name = name;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public static void main(String[] args) {        AAA a[]={                new AAA(6,"Tom"),                new AAA(6,"Ahh"),                new AAA(11,"Marry"),                new AAA(9,"Mike")        };        Arrays.sort(a);//对象数组的排序和对象数组的二分查找        for(AAA i:a){            System.out.println(i.getName());        }        System.out.println(Arrays.binarySearch(a,new AAA(11,"Marry")));    }}
0 0
原创粉丝点击