• 容器随笔


    定制比较规则:

    • 1.内部比较器|自然排序

      • 要当前比较的类型实现一个借口Comparable接口,重写compareTo方法,方法的内部制定比较规则

      • 硬编码习惯,不够灵活,每次修改源代码

      @Override
      public int compareTo(Person o) {
      return o.age-this.age;
      }

       

    • 2.外部比较器|自定义排序

      • 使用任何一个实现类实现一个接口Comparator,重写compare方法,方法的内部制定比较规则

      //自定义排序
      class Deom implements Comparator<Person>{
      //根据身高做降序排序
      @Override
      public int compare(Person o1, Person o2) {
      return o2.getHeight() - o1.getHeight();
      }

      }

       

     

    Map<k,v> 接口

    • 键值对类型的数据,Map集合中每一个数据都是一个键值对 k-v组成

    • k-v 映射关系

    • map中的key-> 无序不可重复(唯一)  --> Set集合

    • map中 的value-> 无序的,可重复 -->Collection集合

    特点:

    • 一个key只能对应一个value

    • 一个key想要对应多个value时候,可以把多个value存放入一个容器

    方法:

    • 遍历:    

      • 1)keySet() 返回所有的key,根据key获取value

      • 2)values() 返回所有的value,遍历value

      • 3)entrySet() 把map中所有的键值对转为多个Map.Entry类型 的对象,Map.Entry类型就表示一个键值对 ,放入set集合中,可以遍历set,获取每一个Map.Entry

      • 调用方法,获取key和 value

     

    Set接口的实现类

    • 无序 (没有索引,添加的顺序和内部真实存储的顺序)    不可重复

       

    遍历方式:

    • 1)  foreach 

    • 2)iterator迭代器

      

    HashSet

    • 底层->是由HashMap的key维护的

    • 实现结构: 哈希表(数组+链表+红黑树)

    • 特点:查询 效率快,增删效率高,但是无序   

    • 去重: 要重写hashcode和equals方法

     

    TreeSet

    • 底层:->是由TreeMap的key维护的

    • 实现结构:红黑树

    • 特点: 有序(默认升序)

  • 相关阅读:
    【转】EDK简单使用流程(3)
    【转】应用 printf 语句格式化输出字符
    【转】[FPGA博客大赛](updated)在xilinx的FPGA系统中scanf函数的使用
    BZOJ 1083 [SCOI2005]繁忙的都市
    BZOJ 2821 分块统计
    BZOJ 1034 [ZJOI2008]泡泡堂BNB
    BZOJ 1029 [JSOI2007]建筑抢修
    BZOJ 1096 [ZJOI2007]仓库建设
    BZOJ 1070 [SCOI2007]修车
    BZOJ 1040 [ZJOI2008]骑士
  • 原文地址:https://www.cnblogs.com/CHOI-6/p/13276375.html
Copyright © 2020-2023  润新知