- 浏览: 433249 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
CmdSmith:
这么构建出来的应该都是完全二叉树吧。。
java实现二叉树的构建以及3种遍历方法 -
haoyuan2012:
非常好,很受益
java实现二叉树的构建以及3种遍历方法 -
haizhiguang:
请问楼主是如何想到 nodeList.get(parent ...
java实现二叉树的构建以及3种遍历方法 -
Angry_Icarus:
赞赞赞
java实现二叉树的构建以及3种遍历方法 -
lilin9043:
刚刚用这个 不会用
UrlRewrite时需要注意的问题:action以及正则表达式
首先需要实现带泛型的Comparable接口,按照自己想要的排序方式重写compareTo,事实上在重写compareTo时,内核用到的依然是Integer、String、Charactor这些已经有自己compareTo的常用数据类型,只是加入了自己的一些想法而已。
第一个例子
/*为了比较,让自己的类实现Comparable接口,按照自己想要的排序方式重写compareTo *Map只是提供了对键的排序,但是当我们需要对值排序时就的提供我们自己的比较器 这里 只是模拟了Map但是实际上并没有使用Map */ import java.util.Iterator; import java.util.Set; import java.util.TreeSet; public class SortByValue { public static void main(String[] args) { Set<Pair> set = new TreeSet<Pair>(); set.add(new Pair("me", "1000")); set.add(new Pair("and", "4000")); set.add(new Pair("you", "3000")); set.add(new Pair("food", "10000")); set.add(new Pair("hungry", "5000")); set.add(new Pair("later", "6000")); set.add(new Pair("myself", "1000")); for (Iterator<Pair> i = set.iterator(); i.hasNext();) // 我喜欢这个for语句 System.out.println(i.next()); } } class Pair implements Comparable<Object> { private final String name; private final int number; public Pair(String name, int number) { this.name = name; this.number = number; } public Pair(String name, String number) throws NumberFormatException { this.name = name; this.number = Integer.parseInt(number); } public int compareTo(Object o) { if (o instanceof Pair) { // int cmp = Double.compare(number, ((Pair) o).number); int cmp = number - ((Pair) o).number; if (cmp != 0) {// number是第一要比较的,相当于先比较value。如果相同再比较键 return cmp; } return name.compareTo(((Pair) o).name); } throw new ClassCastException("Cannot compare Pair with " + o.getClass().getName()); } public String toString() { return name + ' ' + number; } } 输出结果: me 1000 myself 1000 you 3000 and 4000 hungry 5000 later 6000 food 10000
第二个例子:
import java.util.*; public class NameSort { public static void main(String[] args) { Name[] nameArray = { new Name("John", "Lennon"), new Name("Karl", "Marx"), new Name("Groucho", "Marx"), new Name("Oscar", "Grouch") }; Arrays.sort(nameArray); for (int i = 0; i < nameArray.length; i++) { System.out.println(nameArray[i].toString()); } } } class Name implements Comparable<Name> { public String firstName, lastName; public Name(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; } public int compareTo(Name o) { // 实现接口 int lastCmp = lastName.compareTo(o.lastName); // 首先比较姓(lastName)如果姓相同(lastCmp==0)再比较名(firstName),否则返回名的比较 return (lastCmp == 0 ? firstName.compareTo(o.firstName) : lastCmp); } public String toString() { // 便于输出测试 return firstName + " " + lastName; } } 输出结果: Oscar Grouch John Lennon Groucho Marx Karl Marx
//看看这个三目运算符的漂亮应用哦! public int compareTo(Pair o) { int cmp = number - o.number; return (cmp == 0 ? name.compareTo(o.name) : cmp); } ---------------------- public int compareTo(Name o) { // 实现接口 int lastCmp = lastName.compareTo(o.lastName); // 首先比较姓(lastName)如果姓相同(lastCmp==0)再比较名(firstName),否则返回名的比较 return (lastCmp == 0 ? firstName.compareTo(o.firstName) : lastCmp); }
参考:http://han.guokai.blog.163.com/blog/static/136718271201001010228136/
http://develop.csai.cn/java/200905260937361763.htm
.
发表评论
-
采用Client/Server模型理解回调callback
2012-04-22 11:38 4292关于回调早就听说过,但是不曾理解过,周日的上午外面阳光灿烂,我 ... -
java源文件夹打包
2012-04-01 12:49 1113有时候我们可能需要修改源文件来适应自己的需求 案 ... -
使用命令行的方式启动Mina
2012-02-29 09:50 0/** * 使用命令行的方式启动Mina ... -
MD5的工具方法使用
2011-12-07 10:33 1584package com.cdl.test; impo ... -
二进制基础(负数转二进制)
2011-10-30 14:49 2170比如,假设有一 int 类型的数,值为5,那么,我们知道它在计 ... -
java.util包的集合框架应用
2011-10-27 23:19 1298package mix.test; import j ... -
对Entity的未用字段进行借鸡下蛋
2011-09-20 15:00 1200. 1.实体 public class Image ... -
不要再困扰在String与StringBuffer(StringBuilder)的区别上鸟
2011-06-29 16:44 1138无论是初学者还是在java ... -
在myeclipse8.5中导出uml类图
2011-06-21 19:59 1430百度一下:myeclipse类图 . http://wenk ... -
用一下UML建模工具Rational Rose以及类图的基本关系
2011-06-09 14:24 10726. 基本的类图关系: 编码实现: packa ... -
统计某一数组中重复数字的次数
2011-04-28 18:15 5672. 今天上谯老师软件项目管理方法与实践课时给出了一个他曾经留 ... -
模仿String.indexOf,判断一个字符串是否包含另一个字符串
2011-04-26 15:42 4271. 目录: 一.方法介绍 二.图示意 三.源代码 一.方法 ... -
在MyEclipse中添加Java、Struts...源码
2011-03-09 15:14 1110三种方法: 第一种: “window”-> " ... -
使用接口的核心原因:为了向上转型为多个基类型,以及由此带来的灵活。
2010-12-01 13:45 1099package thinkingInJava.interf ... -
后台打印在参看程序执行流程中的重要作用
2010-11-15 13:19 971附注:在每个方法里打印”进入这个方法、方法的名称”,这样 ... -
自定义类中2个元素的比较升级到3个元素的比较
2010-10-28 23:26 1202可以先参考一下前面的一篇文章:为了比较,让自己的类实现Comp ... -
给你一个字符串,包含了空格等标点符号,要你计算出出现次数最多的字母和该字母出现的次数。
2010-10-26 23:59 2769关于Map.Entry可以参看在容器中使用增强的for循环, ... -
在容器中使用增强的for循环,简洁大气,结构清晰
2010-10-26 21:44 1461除了增强的for循环使代 ... -
求模( Modulus )与求余(Remainder) (转)
2010-10-26 17:37 2423import java.math.BigInteger; ... -
今天非常高兴,解决了一个由来已久的单词出现频率统计问题。以及容器浅总结
2010-10-26 16:33 2625总述:人与动物的最大 ...
相关推荐
通过简单的例子初步了解Comparable和Comparator的使用,注释很详细
一般来说,任何实现 Comparable 接口和违背此条件的类都应该清楚地指出这一事实。推荐如此阐述:“注意:此类具有与 equals 不一致的自然排序。” 参数: o - 要比较的对象。 返回: 负整数、零或正整数,根据此...
java通过Comparable接口实现字符串比较大小排序的简单实例
主要介绍了java 实现Comparable接口排序,升序、降序、倒叙,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
大家好,我是Ziph!...好多同学或者读者认为感觉自己学到这里,不知道该从何写起,而我在探究Comparable接口底层原理的同时,写了详细的步骤1、2、3、4、5、6、7、8(一共8个步骤,按数字找有相应书写和想法
如果是自然排序,需要元素实现Comparable接口,重写compareTo方法 如果是定制排序,需要创建TreeSet对象的时候,传入一个Comparetor接口实现类对象,重写compare方法 一般是默认排序用自然排序(Comparable接口)...
comparator接口与Comparable接口的区别
在 java 中,要实现类的大小比较可以实现 Comparable 接口并通 过重写 compareTo 方法来实现。 在 Mapreduce 中,如果需要自定义类的排序规则,需要让类实现 Writable 的子接口 WritableComparable,重写里面的 ...
下面小编就为大家带来一篇java中实现Comparable接口实现自定义排序的示例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。 此外,实现此接口的对象可以用作有序映射中的键或有序集合...
492.490.JAVA基础教程_常用类-自定义类实现Comparable自然排序(492).rar
计算机后端-Java-Java核心基础-第22章 常用类 22. 自定义类实现Comparable自然排序.avi
【IT十八掌徐培成】Java基础第12天-02.TreeSet实现与Comparable接口.zip
Java8HashMap键与Comparable接口编程开发技术共3页.pdf.zip
当且仅当要使用的对象实现Comparable接口时,我们也可以创建不带Comparator对象的SortedList。 用法 我们将像创建Java中的任何ArrayList一样创建SortedList: SortedList sortedlist = new SortedList(comparator); ...
北京市自学考试java上机实践考题总结,包含了常考的各种题型
本文要来详细分析一下Java中Comparable和Comparator接口的区别,两者都有比较的功能,那么究竟有什么区别呢,感兴趣的Java开发者继续看下去吧
【推选】Comparable自比较接口PPT资料.pptx
文章目录简介ComparableComparator举个例子 java中Comparable和Comparator的区别 简介 java.lang.Comparable和java.util.Comparator是两个容易混淆的接口,两者都...实现这个接口的类都需要实现compareTo方法,表示两个