1. 程式人生 > >在匿名內部類中宣告比較器

在匿名內部類中宣告比較器

1.java本身的集合有著Collections.sort

2.陣列有Array.sort

3.重寫比較器

在集合中,例如List<Student> list這種物件,需要要按照student的考試分數排序,可以直接讓student類實現comparable介面,重寫比較器。或者直接寫一個類,裡面寫比

較器,在sort(list,comparetor)呼叫,為了節省編寫程式碼時間和行數,也可以使用內部類的方式寫比較器,如下

Collections.sort(list, new Comparator<Student>() {

public int compare(Student o1, Student o2) {

        return o2.getId() - o1.getId();

};

});

注意,這裡的Comparator是一個介面,但是java中允許匿名內部類直接new一個介面,以為匿名內部類沒有類名沒有構造器,會直接實現介面中的,所以要重寫介面的抽象方法,

且方法必須是public的,此外可能還有些其他需要注意的。另,匿名內部類應該也可以new抽象類。