当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: 摘要:经常看见有人还在不厌其烦的用冒泡(最常见!)或是交换做排序
 

 

    摘要:我刚开始在csdn的vb论坛里看到这个帖子的时候,想了很久都没有找到解决方法。后来看zy910写到“由于edit控件的设定(只能在创建窗口时设置风格,创建后不能修改) 所以textbox的multiline屬性实现原理是:先清除原有的edit,再创建一个新的edit 这在设计时是可行的。但在运行时,会导致文本框相关数据的丢失,甚至会因不安全的代码导致非法操作,所以m$将textbo......
    摘要:快有一个星期没有更新了转一个codeproject上的文章,原文代码有问题,修改编译后通过。原文在这里先在项目引用里添加上对microsoft word 9.0 object library的引用。 using system; namespace docconvert { class doctortf { static void main() { //创建一个word的实例 wor......


用几行代码实现排序
上一页   ...        return (int)pay - (int)other.pay;

  【程序编程相关:基于阻塞Socket的远程控制类库-TN

    } 【推荐阅读:在C#中编写多线程应用程序,简单!

       return "{name: " + name + ", language: " + language + ", money: " + pay + "}"; 【扩展信息:JavaTWO 2004 in taiw

    public string tostring(){

    }

}

对其进行排序:

       arraylist list = new arraylist();

       list.add(new programmer("张三", "c", 12000));

       list.add(new programmer("李四", "java", 200));

       list.add(new programmer("王五", "c++", 5000));

       list.add(new programmer("钱六", "vb", 3000));

       system.out.println("before sort: " + list);

       collections.sort(list);

       system.out.println("after sort: " + list);   

输出:

before sort: [{name: 张三, language: c, money: 12000.0}, {name: 李四, language: java, money: 200.0}, {name: 王五, language: c++, money: 5000.0}, {name: 钱六, language: vb, money: 3000.0}]

after sort: [{name: 李四, language: java, money: 200.0}, {name: 钱六, language: vb, money: 3000.0}, {name: 王五, language: c++, money: 5000.0}, {name: 张三, language: c, money: 12000.0}]

 

够简单吧!查查comparable的javadoc可以知道,有很多类已经实现了该接口,因此对这些类的排序几行代码就可以搞定.

最近看c#发现其中用system.array.sort对数组排序,适用于所有实现了icomparable接口的对象,看来微软的借鉴能力还真是强啊!

 

对已有类进行排序

上面的方法有一个问题,就是一个类已经存在了,并且没有实现comparable接口,使用一个子类进行封装?很麻烦(你可以对下面的例子试试).还有一种情况就是对一个类没法实现多种排序.以file类为例,它实现了comparable接口,但是是按照名称排序的.如果要按照大小排序,或者按修改时间排序呢?对这两种情况,使用java.util包的comparator接口:

arrays.sort(object[] arr, comparator com)

collections.sort(object[] arr, comparator com)

comparator接口的方法:

public int compare(object o1, object o2) 当o1比o2大时返回一个正整数

public boolean equals(object obj)  判断obj与这个comparator是否同一个对象

下面使用comparator对文件实现了按文件大小或修改时间排序:


...   下一页
    摘要: 乾坤一笑[smileonce] smileonce@126.com 2004-7-23 版权所有 转载请注明出处 http://blog.csdn.net/smileonce 在windows平台我们老早就开始使用虚拟光盘镜像了,最早是用来打游戏,有一些带有cd-key的光盘镜像,用虚拟光驱挂在后使用。(还有一些比如拔光驱数据线什么的伎俩,相信大家也都见识过^_^)我们今天所要解决的问题是:如......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE