首页 > 代码库 > “匿名内部类”的使用场合举例
“匿名内部类”的使用场合举例
package com.sxt.set6; import java.util.Comparator; import java.util.HashSet; /* * TreeSet 有序的 二叉树(红黑数) */ import java.util.Set; import java.util.TreeSet; /* * 匿名内部类 * 使用场合:只需要创建一次对象,就不在使用了,没有必要提供专门的实现类(不使用外部比较器) * */ public class TestStudent { public static void main(String[] args) { //匿名内部类:不是新建了接口而是新建了一个实现类 (穿入比较规则) Set<Student> arr1 = new TreeSet<>(new Comparator<Student>() { @Override public int compare(Student stu1, Student stu2) { if(stu1.getName().equals(stu2.getName())){ return stu2.getAge() - stu1.getAge(); } return stu1.getName().compareTo(stu2.getName()); } }); arr1.add(new Student("bbb", 21, 532.2)); arr1.add(new Student("ccc", 32, 32.2)); arr1.add(new Student("aaa", 11, 352.2)); arr1.add(new Student("aaa", 15, 32.2)); System.out.println("匿名内部类按名字排序(如果名字相同则按年龄降序排序):"); for(Student s:arr1){ System.out.println(s); }
//按照外部比较器按名字排序(如果名字相同则按年龄降序排序):
//Student [name=aaa, age=15, salary=32.2]
//Student [name=aaa, age=11, salary=352.2]
//Student [name=bbb, age=21, salary=532.2]
//Student [name=ccc, age=32, salary=32.2]
}
}
“匿名内部类”的使用场合举例
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。