数组Array:

 

集合Set:

集合是承载元素的容器;

特点:每个元素只能存在一次

优点:去重

  • 二分搜索树的添加操作add:不能盛放重复元素
  • 是非常好的实现“集合”的底层数据结构
  • /**
     * 集合的接口
     */
    public interface Set<E> {
        void add(E e);//添加  <——<不能添加重复元素
        void remove(E e);//移除
        int  getSize();//获取大小
        boolean isEmpty();//是否为空
        boolean contains(E e);//是否包含元素
        
    }
  • 典型应用:1.客户统计 2.词汇量统计

集合的时间复杂度分析:

  linkedList BST
add O(n) O(logn)
contains O(n) O(logn)
remove O(n) O(logn)

有序集合和无序集合

有序集合:元素中具有顺序性<——<基于搜索树实现

无序集合:上一节链表实现的集合是无序的集合,元素没有顺序性<——<基于哈希表的实现

多重集合

  • 集合中的元素可以重复

映射Map(字典)

  • 一一映射,在定义域中每一个值在值域都有一个值与他对应
  • 存储(键,值)数据对的数据结构(Key,Value)
  • 根据键(Key),寻找值(Value)

 

玩转数据结构《一》

有序映射和无序映射

有序映射中键具有顺序性的<——<基于搜索树实现

无序映射中键没有顺序性的 <——<基于哈希表实现

多重映射:键可以重复的

 

基于集合(Set<E>)的实现来实现映射(Map<K,V>)
重定义集合中的元素是<K,V>

重定义的数据对是以K键来进行比较的,而不去管value值

基于映射(Map<K,V>)实现来实现集合(Set<E>)更常见的方法
 当我们有一个底层映射实现了

集合我们就可以理解成Map<K,V>中的V值为null的情况

对不管是什么K,它所对应的V都是空

当我们只考虑K的时候,整个Map,就是V的集合

相关文章:

  • 2021-10-11
  • 2021-04-19
  • 2021-07-23
  • 2021-08-20
  • 2022-12-23
  • 2021-07-30
  • 2021-11-21
  • 2021-11-20
猜你喜欢
  • 2022-12-23
  • 2021-05-08
  • 2021-07-16
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案