网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  小议局部类(1)     
  文章作者:未知  文章来源:水木森林  
  查看:114次  录入:管理员--2007-11-17  
 
  小议局部类(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”语句,而在匿名类中不需要显示的使用这条语句。

哪一种格式“更好”取决于你自己的观点。匿名类的定义会比较难读,但在不需要使用局部类的地方使用局部类会造成一些错觉,让人觉得需要做的事比实际要做的事更多。
(未完待续)
 
 
上一篇: 小写金额转成大写算法    下一篇: 新java技术工具亮相游戏开发商大会
  相关文档
经验分享全过程jsp程序员完全蜕变手册 11-16
java中将数据由utf8转换成gb2312格式 11-16
mock 概述以及用 mock object 进行测试 11-17
纯java周历的写法 11-17
解决目前web开发的页面程序 11-17
java设计模式例子 factorymethod pattern 11-17
25种java模式代码参考手册 11-17
java调试教程--使用jdb进行调试 11-16
java程序的编码规范 11-17
企业级应用中开发 j2ee 应用的黄金要领 11-17
如何规划您的大型java多并发服务器程序 11-17
用java编写asp组件 11-17
程序人生:有挑战性的java程序员面试32问 02-29
java 理论与实践:让j2ee程序脱离容器 11-16
.net中自定义配置节点实例详解 11-17
创建灵活易扩展的j2ee企业应用程序框架 11-17
在java中实现条件编译 11-17
关于servlet 11-17
在java中如何模拟多继承 11-17
jsp核心技术和电子商务应用实例源代码分析 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息