zoukankan      html  css  js  c++  java
  • 集合框架

    集合框架整理

    TreeMap和TreeSet的底层由于使用的是二叉树,所以不能保证是存取有序的,但是他们却有着自然顺序,而且这种自然顺序是可以进行自定义的,通过实现比较器接口即可达到目的,如根据我们指定的一个属性值进行排序

    案例如下

    实体类

    class User {
        String name;
        int age;
    
        public User(String name, int age) {
            this.name = name;
            this.age = age;
        }
    }

    测试方法

    @org.junit.Test
        public void test1() {
           User user1 = new User("小o",45);
           User user2 = new User("小a",456);
           User user3 = new User("小b",5);
           User user4 = new User("小c",48);
           User user5 = new User("小d",8695);
           User user6 = new User("小e",475);
           User user7 = new User("小f",546);
           User user8 = new User("小g",405);
    
            TreeMap<User,String> treeMap = new TreeMap(new Comparator<User>() {
                @Override
                public int compare(User user1, User user2) {
                    if (user1.age > user2.age) {
                        return 1;
                    } else if (user1.age == user2.age) {
                        return 0;
                    } else   {
                        return -1;
                    }
                }
            });
            treeMap.put(user1,"1");
            treeMap.put(user2,"2");
            treeMap.put(user3,"3");
            treeMap.put(user4,"4");
            treeMap.put(user5,"5");
            treeMap.put(user6,"6");
            treeMap.put(user7,"7");
            Set<User> users = treeMap.keySet();
            for (User user : users) {
                System.out.println(user.age);
            }
        }

    输出结果

    5
    45
    48
    456
    475
    546
    8695

    在比较器中的compare中,第二个参数是当前要插入的结点点,第一个参数是当前树要插入结点的上一个结点,返回负数则表示当前结点放在树的左子树中,返回0或负数则表示相等放在右子树中(黑体部分是回忆的,以后如果有空再考证,如果有大佬知道留言,感谢)

    根据上方案例,也可对TreeSet进行排序

  • 相关阅读:
    升级CentOS内核
    npm、component、spm、bower的区别
    Bower的使用
    Mac安装Bower
    Bower是什么?
    Mac下安装与配置Go语言开发环境
    jenkins升级为2.134
    nexus实现从windows迁移至Linux平台
    Jenkins构建完成后实现自动将war包部署到指定服务器
    使用jenkins构建一个maven项目
  • 原文地址:https://www.cnblogs.com/kitor/p/10497359.html
Copyright © 2011-2022 走看看