接口
ArrayList只可以保存添加顺序,如要对列表进行排序,可以调用Collections.sort方法,但必须保证列表中的元素是java.lang.Comparable类型
Comparable是一个接口,接口包含若干个方法的定义.java的Comparable类型的定义是:
public interface Comparable<T>
{
public int comprarTo( T o );
}
在这里,字符"T"是先告待比较类型的占位符,java编译器用实际类型来代替接口定义所有的T.
将定义和类定义进行对比.区别在于:使用interface关键字声明接口,使用class关键字声明类.接口不包含任何方法的实现.
方法 comparable 的作用是:根据排序规则,返回一个值,通过值来判断某个对象应该排在另一个对旬的前面还是后面.
在回到Comparable接口,可以看一下String的代码
public final class String
implements java.io.Serializable , Comparable<String> , CharSequence
{
...
方法sort轮流取出集合中的每一个对象,
并且将对象赋值给一个Comparable接口类型的变量.如果赋值成功,那么方法sort可以成功的将消息sort发送给这个对象.如果赋值不成功,java会报错
为什么需要接口
接口是Java提供的非常强大和重要的功能.使用接口是可靠设计的关键之一.正确地使用接口可以帮助您划分软件,最少化不同代码之间的相互影响,用户只用关心抽象的质量,而不用关心任何代码的细节
可以将抽象排序概念视为消除重复的一种方式.接口允许某个算法操作不同类型的对象.排序算法没有用来判断对象类型重复代码
系统中,使用接口提供抽象层,从而有乃至于消除重复
通过编写符合接口规范的桩代码,您可以利用接口消除代码之间的依赖关系,这些代码可以不工作甚至不存在.接口是实现有效测试的基本工具.
Comparable的实现
方法compareTo必须返回int类型的值,如果返回0,那么两个对象相同,如返回值为负数,哪么接收者应该排在参数的前面,如果返回值为正数,那么参数应该在接收者的前面.
分享到:
相关推荐
NULL 博文链接:https://shijingyiyi.iteye.com/blog/739423
agile java 每一章 课程 的 源码;
Agile Java Example Code
Agile Java 中文版 优秀的入门书籍之一
Agile Java Crafting Code with Test-Driven Development英文版,包含pdf和chm格式,pdf格式的目录缩进和超连接有问题,所以附上了改造过的chm文件,以便有心人可以修改目录。
agile Java课后习题代码
<<agileJava>> 这本书的程序代码 非常不错的一本书
Agile Java 高清中文版 这本书一大特点是以单元测试和TDD来贯穿全书的,在教你Java各种重要的基础知识的过程中,潜移默化的影响你的编程思维走向敏捷,走向TDD。这本书成书,以JDK5.0的语法为基础讲解,要学习JDK...
Agile Java 通俗易懂, 适合初学者入门教材.
属于agile java课本及课后练习代码,但请好好利用,而非看过一遍就完了。只有认真的学习之后才能真的理解本书的所带来的对于你开发上的帮助。谨记,要自己多多的动手!
Agile Java 高清中文版.rar 很不错的文档了
java面试笔试题库java学习比较开发教程互联网公司面试资料大全合集: 100家大公司java笔试题汇总.doc 125条常见的java 面试笔试题大汇总.pdf 2011最新整理java经典代码.doc 25个经典的Spring面试问答.docx 8张图解...
( 2 agile java.pdf chm转pdf字体有点小
资源名称:Agile Java中文版:测试驱动开发的编程技术内容简介:本书将当前流行的敏捷开发方法融入到了Java语言的实践中,给了您学习并掌握Java 5.0、面向对象方法的机会,同时您还将学习测试驱动开发方法。...
agile java(测试驱动开发的编程技术)
值得一看的好书Agile Java Crafting Code with Test-Driven Development.chm
Agile Java 最初在图书馆看到它是因为比起那些陈年老书,它算很新的了,所以就借来看看。书后是这样介绍的:掌握java5.0,面向对象设计和测试驱动开发。本书将三者编织在一起,形成一种旨在构建一种专业健壮的软件...