国产探花免费观看_亚洲丰满少妇自慰呻吟_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”語句,而在匿名類中不需要顯示的使用這條語句。

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建瓯市| 旺苍县| 武平县| 永城市| 区。| 寻乌县| 赤壁市| 封开县| 霍林郭勒市| 南溪县| 化隆| 天台县| 新野县| 宜丰县| 灵宝市| 徐闻县| 随州市| 南涧| 曲水县| 临桂县| 安化县| 长宁区| 和政县| 左云县| 仁怀市| 饶阳县| 万年县| 左贡县| 南投县| 衡山县| 平度市| 鞍山市| 嘉荫县| 吉木萨尔县| 泗阳县| 新巴尔虎左旗| 思茅市| 周宁县| 泊头市| 天门市| 夹江县|