对于自定义对象,Sort不知道规则,所以无法比较。这种情况下一定要定义排序规则。方式有两种:

java.lang下面有一个接口:Comparable(可比较的)

可以让自定义对象实现一个接口,这个接口只有一个方法comparableTo(Object o)

其规则是当前对象与o对象进行比较,其返回一个int值,系统根据此值来进行排序。

如 当前对象>o对象,则返回值>0;(可将返回值定义为1)

如 当前对象=o对象,则返回值=0;

如 当前对象<o对象,则返回值〈0。(可将返回值定义为-1)

看TestArraylist的java代码。

我们通过返回值1和-1位置的调换来实现升序和降序排列的转换。

 package TomTexts;

     abstract class fatherClass
{
abstract void abstractMethod();
void printMethod()
{
System.out.println("fatherClass function! ");
}
}
class childClass extends fatherClass
{
void abstractMethod()
{
System.out.println("childClass function! ");
}
}
public class TomTexts_07
{
public static void main(String args[])
{
childClass c=new childClass();
c.abstractMethod();
c.printMethod(); }
}

java.lang下面有一个接口:Comparable(可比较的)的更多相关文章

  1. java 中的2个接口 Comparable和Comparator

    像Integer.String这些类型的数据都是已经实现Comparable接口的,所以对这些类型可以直接通过Arrays.sort(...)和Collections.sort(...)方法进行排序. ...

  2. java.lang.reflection打印一个类的全部信息

    package com.ljy.chapter5; import java.lang.reflect.Constructor; import java.lang.reflect.Field; impo ...

  3. java lang(Thread) 和 Runable接口

    public interface Runnable { public abstract void run(); } public class Thread implements Runnable { ...

  4. Java.lang的研究(分析包含的重要类和接口)

    Java.lang包是Java中使用最广泛的一个包,它包含很多定义的类和接口. java.lang包包括以下这些类: Boolean Byte Character Class ClassLoader ...

  5. java.lang和java.lang.annotation中实现Annotation的类小结

    加了注解,等于打上了某种标记,没加,则等于没有某种标记,以后,其他程序可以用反射来了解你的类上面有无何种标记,看你有什么标记,就去干相应的事.标记可以加在类,方法,字段,包上,方法的参数上. (1)  ...

  6. Java源码学习 -- java.lang.StringBuilder,java.lang.StringBuffer,java.lang.AbstractStringBuilder

    一直以来,都是看到网上说“ StringBuilder是线程不安全的,但运行效率高:StringBuffer 是线程安全的,但运行效率低”,然后默默记住:一个是线程安全.一个线程不安全,但对内在原因并 ...

  7. xamarin android如何将Java.Lang.Object类型转成C#类型

    问题起源 其实这个标题也可以换一个更准确一点,因为我遇到的问题是: xamarin android中的Class继承了Java.Lang.Object ,将json序列化成c#类型时发现无法赋值,序列 ...

  8. 初学Java Web(3)——第一个Servlet

    这学期 Java Web 课程的第一节课就简短复习了一下 Java 的一些基础知识,所以觉得 Java 的基础知识还是很重要的,但当我想要去写一篇 Java 回顾的文章的时候发现很难,因为坑实在太多了 ...

  9. 【转】java使用java.lang.management监视和管理 Java 虚拟机

    原文地址:https://blog.csdn.net/zhongweijian/article/details/7619383 软件包 java.lang.management 提供管理接口,用于监视 ...

随机推荐

  1. UNIX网络编程读书笔记:select函数

    select函数概况: select函数允许进程指示内核等待多个事件中的任何一个发生,并仅在有一个或多个事件发生或经历一段指定的时间后才唤醒它. 作为一个例子,我们可以调用select,告知内核仅在下 ...

  2. UML学习(一)-工具介绍

    这里用于学习UML的工具是StarUML,没有什么原因为什么要用它,或许仅仅是有人说好用和比较小. 首先介绍下这个工具,来张图. 1.菜单栏(最上面) 2.快捷工具栏(菜单栏下面) 3.工具项(Too ...

  3. java注解,通过反射解析注解,模仿hibernate,获取sql语句。

    常用注解: 自定义注解,标准格式: 1,target:注解作用域 2,Retention:声明周期 运行子类继承,但是子类继承只能作用到类注解,字段注解,是继承不了的. 使用注解:通过下面这种方式,为 ...

  4. Android中 单位 介绍

    看到有很多网友不太理解dp.sp和px的区别:现在这里介绍一下dp和sp.dp也就是dip.这个和sp基本类似.如果设置表示长度.高度等属性时可以使用dp 或sp.但如果设置字体,需要使用sp.dp是 ...

  5. npoi IWorkbook HSSFWorkbook XSSFWorkbook 拥有 IEnumerator GetEnumerator(); 方法 可以遍历workbook 每个元素为每个sheet页

  6. WebForm 页面ajax 请求后台页面 方法

    function ReturnOperation(InventoryID) { //入库 接口 if (confirm('你确认?')) { $.ajax({ type: "post&quo ...

  7. EF6 Code First 模式更新数据库架构

    定义好实体类和上下文类 在 Package Manager Console 输入以下命令 1.Enable-Migrations 启用数据迁移功能,该命令通常会在项目根目录下生成 Migrations ...

  8. IntelliJ IDEA 学习(三):IntelliJ IDEA 快捷键、配置优化

    一.两种方式可以设置快捷键: 1)setting -> keymap 想找到有关Idea工具的菜单或其他功能的话,可以再这里找到对应的快捷键   2)setting -> Editor - ...

  9. Atitit. 构造ast 语法树的总结attilax oao

    Atitit. 构造ast 语法树的总结attilax oao 1. 能那更加有意义的名字来命名ast节点... 1 2. 如何命名表达式名称..使用实际对象名称,而不是操作符号表达式更好 1 2.1 ...

  10. DPDK 全面分析

    本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 高性能网络技术 ...