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());
            }
        }
    
    会当凌绝顶,一览众山小
  • 相关阅读:
    有关linux查看的命令 及本机yum创建
    linux系统命令1
    手机百度网盘加群方法
    百度网盘保存超限解决办法
    c#委托、泛型委托和匿名方法
    值类型和引用类型的总结
    SQL数据查询语句(一)
    c# Invoke和Begininvoke区别
    c#public、private、protected、internal、protected internal修饰符及访问权限
    C#之打印乘法表
  • 原文地址:https://www.cnblogs.com/leyzzz/p/15333457.html
Copyright © 2011-2022 走看看