匿名内部类的声明使用方式,

Comparabletor接口实现,需要先导入包,再实现Comparator的对象比较的方法,并且需要新声明比较器类去实现此接口,再用比较器类新建对象调用compare(Objecto1, Object o2)方法,比较两个需要比较的对象的大小

Comparable的接口实现方式,可以直接使用需要比较的类去实现此接口,需要比较的对象去调用compareTo(Object o)方法即可

import java.util.Comparator;

import java.util.Arrays;

public class TestComparator{

public static void main(String[] args){

Student s1 = new Student(16, 'n', 99);

Student s2 = new Student(18, 'n', 98);

int res = s1.compareTo(s2);//根据实现接口重写的方法,对分数进行比较

Student s3 = new Student(17, 'n', 96);

Student[] students = new Student[3];

students[0] = s1;

students[1] = s2;

students[2] = s3;

Arrays.sort(students, new Comparator(){  //新建匿名内部类,对学生年龄进行比较

public int compare(Object o1, Object o2){

Student s1 = (Student)o1;

Student s2 = (Student)o2;

return s1.getAge() - s2.getAge();

}

});

for (int i = 0; i <= students.length-1 ; i++) {

System.out.println(students[i]);

}

}

}

class Student implements Comparable{

public int age;

public char gender;

public int score;

public Student(){

}

public Student(int age, char gender, int score){

this.age = age;

this.gender = gender;

this.score = score;

}

public void setAge(int age){

this.age = age;

}

public int getAge(){

return this.age;

}

public void setChar(char gender){

this.gender = gender;

}

public char getChar(){

return this.gender;

}

public void setScore(int score){

this.score = score;

}

public int getScore(){

return this.score;

}

public String toString(){

return "age: " + this.age + ", gender: " + this.gender + ", score: " + this.score;

}

public int compareTo(Object o){

Student s = (Student)o;

return this.score - s.score;

}

}

java 匿名类实现6_java匿名内部类,以及实现Comparato和Comparable接口实现对对象的排序...相关推荐

  1. Java 匿名类(匿名内部类)

    Java 匿名类(匿名内部类) 学习的参考博文:无恨之都 1. 初识 匿名类 标准说法: 内部类包括:成员类.局部类.匿名类(匿名内部类). 匿名类概念: 匿名类可以使你的代码更加简洁 (JDK8之后 ...

  2. 解决内存泄漏更加清楚的认识到Java匿名类与外部类的关系

    1.事件起因 在做项目的时候,通过Android Studio的Memory Monitor窗口观察程序内存使用情况,发现当程序退出的时候,有一部分应该释放掉的内存没有释放掉,知道程序中应该有内存泄漏 ...

  3. java匿名类_Java匿名类

    java匿名类 Java anonymous class are like local class or inner class without a name. We can use java ano ...

  4. 1.18 Java匿名类,匿名内部类

    匿名类是指没有类名的内部类,必须在创建时使用 new 语句来声明类.其语法形式如下: new <类或接口>() {// 类的主体 }; 这种形式的 new 语句声明一个新的匿名类,它对一个 ...

  5. java匿名类构造方法_Android(Java) | 你知道吗?Java匿名内部类其实是有“名字”和构造方法的!...

    要点 匿名类的概念和用法 语言规范以及语言的横向对比等 内存泄漏的切入点 总结 没有人类认知意义上的名字 只能继承一个父类或实现一个接口 父类是非静态的类型,则需父类外部实例来初始化 如果定义在非静态 ...

  6. java 匿名类调用方法_Java匿名内部类使用与示例

    首先说为什么有匿名类(产生的使命) 两个原因 1.简化代码编写 某种情况下,类只需要扩展一个方法,没必要为了一个方法单独去写一个子类,然后然后调用子类,此时需要匿名类 2.在不同的包内的类内调用类的p ...

  7. java 匿名类_浅谈Java的匿名类

    在实际的项目中看到一个很奇怪的现象,Java可以直接new一个接口,然后在new里面粗暴的加入实现代码.就像下面这样.那么问题来了,new出来的对象没有实际的类作为载体,这不是很奇怪吗? 思考以下代码 ...

  8. java匿名类序列化问题

    Pagination已经继承Serializable,并且具有如下两个属性 private int page;private int pageSize; 变量Integer pageNo, Integ ...

  9. java匿名类的用法

    1.Java允许我们直接使用一个类的子类的类体创建一个子类对象 2.有时候创建子类对象时,除了使用父类的构造方法外还有类体,这个类体被认为是一个子类去掉类声明后的类体,称作匿名类. 3.匿名类是一个子 ...

最新文章

  1. linux复制duo文件,自动生成Linux下Makefile全攻略(转)
  2. VMware linux 在2.4.20-8 中编译2.6.15.5 内核
  3. Oracle 直方图理论
  4. 快抢!猪年之前最后一波送书福利,错过只能等“明年”
  5. github 改善网速
  6. UHF-RFID基础知识
  7. java程序设计从方法学角度描述_(特价书)Java程序设计:从方法学角度描述
  8. 网件刷breed_网件R6220刷breed变砖的维修
  9. PHP操控Excel视频教程
  10. Linux 之 vim 使用
  11. c语言为什么要使用short类型,为什么c语言中short的表示范围是-32768~32767?(转)...
  12. 无招胜有招-代码解读阿里开源芯片平台无剑100
  13. 7的整除特征 三位一截_小学数学竞赛七、数的整除特征(一)
  14. html相同标签nth,比较CSS3选择器:nth-child和:nth-of-type之间的区别
  15. 【GlobalMapper精品教程】033:影像地图羽化方式详解
  16. STM32F7 使用 FAL 配置片上FLASH
  17. Python基础学习第三天——条件控制与while循环语句
  18. matlab实验数据处理,实验一 数据处理方法的MATLAB实现
  19. 如何降低运放噪声?运放电路噪声降低措施
  20. xbox360版本之分

热门文章

  1. 基于Android中实现定时器的3种解决方法
  2. Project Euler Problem 27小结
  3. Linux 下,系统时间毫秒级命名文件
  4. lisp语言如何画小红点_实验四、五 用AutoCADLISP语言编程绘图
  5. BZOJ5248:[九省联考2018]一双木棋——题解
  6. Python中的日期和时间
  7. nginx + tomcat 架构中,页面跳转,URL不变,网页内容变
  8. Storm实验 -- 单词计数4
  9. Android_之动画1
  10. zepto tap “点透”研究