数据库文档生成工具(DB2Word)
2009-07-27 12:28
555 查看
本文转自:程序员之家论坛
原文地:http://www.phome.asia/forum/thread/20600.htm
Java 2在java.lang中新增加了一个接口:Comparable。实现Comparable的类的对象可以被排序。换句话说,实现Comparable的类包含了可以按某种有意义的方式进行比较的对象。Comparable接口说明了一个方法,该方法用于确定Java 2调用一个类的实例的自然顺序。该方法如下所示: int compareTo(Object obj) 这个方法比较调用对象和obj。如果他们相等,就返回0。如果调用对象比obj小,则返回一个负值。否则返回一个正值。特别是Byte,Character,Double,Float,Long,Short,String以及Integer类定义了compareTo( )方法。实现这个接口的对象可以被使用在不同的集合中。
要比较一个类,必须实现Comparable,并且重写compareTo方法。
现看一下该接口的定义:
要自己实现该接口,从API看到该接口只有一个方法,
compareTo的约定是:
将当前这个对象与指定的对象进行顺序比较,当该对象小于、等于或大于指定对象时,分别返回一个负整数、0或正整数,如果无法进行比较,则抛出ClassCastException异常。(泛型没有掌握,所以compareTo的参数用Object ,所以比较之前必须进行强制转换。如果学会了泛型就方便多了)。
现在我们写个例子来实践一下,重写comparable接口的compareTo的方法,按照我们所定义的“规则”排序。
Student类实现了Comparable接口并重写了compareTo的方法,代码如下:
Java代码
从重写的compareTo方法可以看出,排序“规则”是这样的:首先按照学生姓名排序,如果学生姓名相同的话,再按照学生年龄排序。
写一个测试类,测试一下,代码如下:
Java代码
运行结果为:
name=DDD age=13
name=EEE age=12
name=FFF age=11
当学生姓名相同时,再按照学生的年龄排序,如果把测试类的三个例子改为:
Student stu1 = new Student("EEE", 12);
Student stu2 = new Student("EEE", 11);
Student stu3 = new Student("DDD", 13);
则运行结果为:
name=DDD age=13
name=EEE age=11
name=EEE age=12
原文地:http://www.phome.asia/forum/thread/20600.htm
Java 2在java.lang中新增加了一个接口:Comparable。实现Comparable的类的对象可以被排序。换句话说,实现Comparable的类包含了可以按某种有意义的方式进行比较的对象。Comparable接口说明了一个方法,该方法用于确定Java 2调用一个类的实例的自然顺序。该方法如下所示: int compareTo(Object obj) 这个方法比较调用对象和obj。如果他们相等,就返回0。如果调用对象比obj小,则返回一个负值。否则返回一个正值。特别是Byte,Character,Double,Float,Long,Short,String以及Integer类定义了compareTo( )方法。实现这个接口的对象可以被使用在不同的集合中。
要比较一个类,必须实现Comparable,并且重写compareTo方法。
现看一下该接口的定义:
public interface Comparable{ public int compareTo(Object o); }
要自己实现该接口,从API看到该接口只有一个方法,
compareTo的约定是:
将当前这个对象与指定的对象进行顺序比较,当该对象小于、等于或大于指定对象时,分别返回一个负整数、0或正整数,如果无法进行比较,则抛出ClassCastException异常。(泛型没有掌握,所以compareTo的参数用Object ,所以比较之前必须进行强制转换。如果学会了泛型就方便多了)。
现在我们写个例子来实践一下,重写comparable接口的compareTo的方法,按照我们所定义的“规则”排序。
Student类实现了Comparable接口并重写了compareTo的方法,代码如下:
Java代码
public class Student implements Comparable { private int age; private String name; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Student() { } public Student(String name, int age) { this.name = name; this.age = age; } public boolean equals(Object obj) { boolean rusult = false; if (this == obj) { rusult = true; } if (!(obj instanceof Student)) { rusult = false; } Student stu = (Student) obj; if ((stu.getName().equals(this.name)) && (stu.getAge() == this.age)) { rusult = true; } else { rusult = false; } return rusult; } public int hashCode() { return (this.name.hashCode() + this.age) * 31; } public String toString() { return "name=" + this.name + " age=" + this.age; } public int compareTo(Object o) { Student stu = (Student) o; if (this.getName().compareTo(stu.getName()) > 0) { return 1; } if (this.getName().compareTo(stu.getName()) < 0) { return -1; } if ( this.age > stu.getAge() ) { return 1; } if (this.age < stu.getAge()) { return -1; } return 0; } }
从重写的compareTo方法可以看出,排序“规则”是这样的:首先按照学生姓名排序,如果学生姓名相同的话,再按照学生年龄排序。
写一个测试类,测试一下,代码如下:
Java代码
import java.util.*; public class TreeSetTest { public static void main(String args[]) { Set set = new TreeSet(); Student stu1 = new Student("EEE", 12); Student stu2 = new Student("FFF", 11); Student stu3 = new Student("DDD", 13); set.add(stu1); set.add(stu2); set.add(stu3); Iterator it = set.iterator(); while (it.hasNext()) { Object obj = it.next(); System.out.println(obj); } } }
运行结果为:
name=DDD age=13
name=EEE age=12
name=FFF age=11
当学生姓名相同时,再按照学生的年龄排序,如果把测试类的三个例子改为:
Student stu1 = new Student("EEE", 12);
Student stu2 = new Student("EEE", 11);
Student stu3 = new Student("DDD", 13);
则运行结果为:
name=DDD age=13
name=EEE age=11
name=EEE age=12
相关文章推荐
- 关于数据库管理工具的使用----把数据库中的表等生成word文档
- 数据库文档生成工具——word2chm,SqlSpec
- DBImport v3.3 中文版发布:数据库数据互导及文档生成工具(IT人员必备)
- 从数据库中取出数据,使用freemarker生成word文档
- 发布数据库表结构导出成WORD文档工具 DBExportDoc V1.0 For Oracle
- 基于数据库的自动化生成工具,自动生成JavaBean、自动生成数据库文档等(v5.8.0版)
- DBImport v3.3 中文版发布:数据库数据互导及文档生成工具(IT人员必备)
- 数据库文档生成工具1.0版本终于发布
- DBImport v3.44 中文版发布:数据库数据互导及文档生成工具(IT人员必备)
- DBImport v3.44 中文版发布:数据库数据互导及文档生成工具(IT人员必备)
- DBImport v3.5 中文版发布:数据库定时同步及文档生成工具(IT人员必备)
- 数据库文档生成工具
- java使用POI工具读取word文档并写入生成新的word文档及错误整理
- 发布数据库表结构导出成WORD文档工具 DBExportDoc V1.0 For MySQL
- 从数据库导出数据生成word或excel文档
- ASP 把数据库内容生成Word文档保存到目录下
- 数据库文档生成工具(1)
- 数据库数据生成word文档的方法
- 数据库文档生成数据库脚本工具
- 将数据库的内容生成WORD文档