Set接口和Map接口

Set接口

  • ​ 无序 (没有索引,添加的顺序和内部真实存储的顺序) 不可重复
HashSet
  1. Set接口的实现类

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

  3. 遍历方式:

    1. foreach

    2)iterator迭代器

    HashSet

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

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

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

    去重: 要重写hashcode和equals方法

    TreeSet

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

    实现结构:红黑树

    特点: 有序(默认升序)

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
    
定制比较规则:

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

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值