Comparable接口的使用以及实例说明

Comparable接口

一、comparable介绍

       在java编程中,我们经常会对集合、数组进行排序,当集合中的对象是自定义的对象时,我们有以下方法能够使排序方法应用到自定义对象的集合(数组)中。下面我们介绍Comparable的用法。

二、comparable用法

     (1)、使用Collections.sort对集合进行排序(集合中存放Integer类型)

public static void main(String[] args) {
    List list = new ArrayList();
    list.add(5);
    list.add(9);
    list.add(8);
    list.add(10);
    list.add(1);
    System.out.println(list);
    Collections.sort(list);
    System.out.println(list);

}

    (2)、Collections.sort对集合进行排序(集合中存放对象)

List list = new ArrayList();
    list.add(new User("zhangsan", 80));
    list.add(new User("lisi", 88));
    list.add(new User("wangwu", 60));
    Collections.sort(list, new Comparator() {
        public int compare(User user1, User user2) {
            /**
             * 升序排的话就是第一个参数.compareTo(第二个参数);
             * 降序排的话就是第二个参数.compareTo(第一个参数);
             */
            return user1.getScore().compareTo(user2.getScore());//升序
        }
    });
    System.out.println(list);

    (3)、Comparable进行排序(使用泛型)

1、定义一个Comparable接口

package strategy;
public interface Comparable {
    int compareTo(T o);
}

2、定义一个排序类

package strategy;
//排序类
public class Sorter {
    public static void sort(Comparable[] arr){
        for(int i =0; i 
  

3、定义一个动物类并实现Comparable接口

package strategy;

/**
 * 猫对象
 */
public class Cat implements Comparable{
    int weight;
    int height;
    public  Cat(int weight,int height){
        this.weight=weight;
        this.height=height;
    }
    public int compareTo(Cat cat){
        if(this.weight < cat.weight) return -1;
        else if(this.weight >cat.weight) return 1;
        else return 0;
    }
    @Override
    public String toString() {
        return "Cat{" +
                "weight=" + weight +
                ", height=" + height +
                '}';
    }
}

4、主函数类

package strategy;

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        Cat[] cats ={new Cat(3,3),new Cat(5,5),new Cat(1,1)};
        Sorter sorter =new Sorter();
        sorter.sort(cats);
        System.out.println(Arrays.toString(cats));
    }
}

以上是Comparable的使用,写的不好请多多指教!!

谢谢

 

你可能感兴趣的:(Comparable接口的使用以及实例说明)