国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

小議局部類(1)

2019-11-18 13:43:00
字體:
來源:轉載
供稿:網友

  小議局部類(1)

假如你有一個 Integer 對象的列表,并且你想使用 Coolections.sort 來對它們進行排序。另外,你還要自己指定一個比較器,因為你想按降序而不是升序排列它們。這里有一些代碼示例說明了該怎么做:

import java.util.*;

public class LocalDemo1 {

// 使用實現了 Comparator 的匿名類排序。

static void sortanon(List list) {

Collections.sort(list, new Comparator() {

public int compare(

Object o1, Object o2) {

int cc = ((Integer)o1).compareTo(o2);

return (cc < 0 ? 1 : cc > 0 ? -1 : 0);

}

});

}

// 使用實現了 Comparator 的局部類排序

static void sortlocal(List list) {

class MyComparator implements Comparator {

public int compare(

Object o1, Object o2) {

int cc = ((Integer)o1).compareTo(o2);

return (cc < 0 ? 1 : cc > 0 ? -1 : 0);

}

};

Collections.sort(list, new MyComparator());

}

public static void main(String[] args) {

List list1 = new ArrayList();

list1.add(new Integer(1));

list1.add(new Integer(2));

list1.add(new Integer(3));

sortanon(list1);

System.out.PRintln(list1);

List list2 = new ArrayList();

list2.add(new Integer(1));

list2.add(new Integer(2));

list2.add(new Integer(3));

sortlocal(list2);

System.out.println(list2);

}

}

這段程序的輸出如下:

[3, 2, 1]

[3, 2, 1]

上列中使用兩種不同的方法實現了 Comparator 接口。第一種方法使用匿名類,第二種方法使用局部類,二者有何區別:

一點區別是格式上的??匿名類的定義比較簡捷,它實際上是下面這個表達式的一部分:

Comparator c = new Comparator() {...};

與之相反,局部類的定義看起來非常類似于常規的類定義,略為煩瑣。例如,定義局部類內時可能用到 “implements”語句,而在匿名類中不需要顯示的使用這條語句。

哪一種格式“更好”取決于你自己的觀點。匿名類的定義會比較難讀,但在不需要使用局部類的地方使用局部類會造成一些錯覺,讓人覺得需要做的事比實際要做的事更多。
(未完待續)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 襄城县| 汤阴县| 丽水市| 甘德县| 宜黄县| 保定市| 阳新县| 禹城市| 南开区| 凤城市| 孟州市| 铁岭县| 云浮市| 安塞县| 军事| 垣曲县| 武功县| 泰顺县| 望奎县| 红河县| 洞头县| 灵山县| 饶阳县| 曲松县| 海阳市| 东丰县| 韶山市| 恭城| 九台市| 高州市| 昂仁县| 凯里市| 通海县| 麻栗坡县| 屏山县| 德保县| 沂水县| 洛南县| 治县。| 仙居县| 虞城县|