码迷,mamicode.com
首页 > 其他好文 > 详细

“匿名内部类”的使用场合举例

时间:2017-04-21 23:13:00      阅读:393      评论:0      收藏:0      [点我收藏+]

标签:etag   out   aaa   images   set   比较   over   pre   http   

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]

    }
}

 技术分享

“匿名内部类”的使用场合举例

标签:etag   out   aaa   images   set   比较   over   pre   http   

原文地址:http://www.cnblogs.com/qingfengzhuimeng/p/6746124.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!