容器随笔

Posted choi-6

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了容器随笔相关的知识,希望对你有一定的参考价值。

定制比较规则:

  • 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维护的

  • 实现结构:红黑树

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

以上是关于容器随笔的主要内容,如果未能解决你的问题,请参考以下文章

将Android片段移动到不同的容器无法更改片段的容器ID

随笔-Docker

docker随笔2--数据卷

周日随笔

如何在 Android 中的特定片段容器中显示片段

尝试将片段添加到我的片段容器 FrameLayout