玩转数据结构《一》

3 篇文章 0 订阅

数组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.词汇量统计

集合的时间复杂度分析:

 linkedListBST
addO(n)O(logn)
containsO(n)O(logn)
removeO(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的集合

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值