zoukankan      html  css  js  c++  java
  • TreeSet中添加的数据,要求是相同类的对象

    1.向TreeSet中添加的数据,要求是相同类的对象。
    2.两种排序方式:自然排序(实现Comparable接口) 和 定制排序(Comparator)
    自然排序中,比较两个对象是否相同的标准为:compareTo()返回0.不再是equals().
    定制排序中,比较两个对象是否相同的标准为:compare()返回0.不再是equals().

    @Test
        public void test1() {
            TreeSet set = new TreeSet();
    
            //失败:不能添加不同类的对象
            //        set.add(123);
            //        set.add(456);
            //        set.add("AA");
            //        set.add(new User("Tom",12));
    
            //举例一:
            //        set.add(34);
            //        set.add(-34);
            //        set.add(43);
            //        set.add(11);
            //        set.add(8);
    
            //举例二:
            set.add(new User("Tom", 12));
            set.add(new User("Jerry", 32));
            set.add(new User("Jim", 2));
            set.add(new User("Mike", 65));
            set.add(new User("Jack", 33));
            set.add(new User("Jack", 56));
    
    
            Iterator iterator = set.iterator();
            while (iterator.hasNext()) {
                System.out.println(iterator.next());
            }
    
        }
    
        @Test
        public void test2() {
            Comparator com = new Comparator() {
                @Override
                public int compare(Object o1, Object o2) {
                    if (o1 instanceof User && o2 instanceof User) {
                        User u1 = (User) o1;
                        User u2 = (User) o2;
                         return u1.getAge()-u2.getAge();
                    }
                    return 0;
                }
                //按照年龄从小到大排列
                // @Override
                // public int compare(Object o1, Object o2) {
                //     if(o1 instanceof User && o2 instanceof User){
                //         User u1 = (User)o1;
                //         User u2 = (User)o2;
                //         return Integer.compare(u1.getAge(),u2.getAge());
                //     }else{
                //         throw new RuntimeException("输入的数据类型不匹配");
                //     }
                // }
            };
    
            TreeSet set = new TreeSet(com);
            set.add(new User("Tom", 12));
            set.add(new User("Jerry", 32));
            set.add(new User("Jim", 2));
            set.add(new User("Mike", 65));
            set.add(new User("Mary", 33));
            set.add(new User("Jack", 33));
            set.add(new User("Jack", 56));
    
    
            Iterator iterator = set.iterator();
            while (iterator.hasNext()) {
                System.out.println(iterator.next());
            }
        }
    
    会当凌绝顶,一览众山小
  • 相关阅读:
    vue开发(一)安装
    Ubuntu18.04安装mysql
    使用.NET Framework开发IIS 7.0模块和处理程序拦截请求实现跳转
    Mysql 清空数据后,释放硬盘文件
    依赖注入
    ubuntu 上开发.netcore
    使用python获取微医数据
    Mysql查询某字段重复值并删除重复值
    使用pyinstaller 打包python程序
    堆(heap)和栈(stack)、内存泄漏(memory leak)和内存溢出
  • 原文地址:https://www.cnblogs.com/leyzzz/p/15333457.html
Copyright © 2011-2022 走看看