java-集合学习-双列集合Map

Map集合

  • Map集合,用于保存具有映射关系的数据:key-value
  • Map中的key和value可以是任何引用类型的数据,会封装到HashMap$Node对象中
  • Map中的key 不允许重复;value 可以重复
  • Map的 key 和 value 可以为null,但key只能有一个为null
  • key 和 value 单向一对一关系

map接口特点

  • map存放数据的key-value,一对k-y是放在一个Node中,而Node实现了Entry接口,一对k-y也可看为一个Entry,Entry中k-y指向Hash Map$Node中的k-y。
    在这里插入图片描述

Map常用接口方法

  1. put:添加
  2. remove:根据键删除映射关系
  3. get: 根据键获取值
  4. size:获取元素个数
  5. isEmpty:判断个数是否为0
  6. clear:清除
  7. containsKey:查找键是否存在

Map遍历

  1. containsKey:查找键是否存在
  2. keySet:获取所有的键
  3. entrySet:获取所有关系k-v
  4. values:获取所有的值
    在这里插入图片描述

Map常用实现类·

  • HashMap
  • (k,v) 是一个Node 实现了Map.Entry<K,V>
    查看 HashMap 的源码可以看到
    jdk7.0的hashmap 底层实现[数组+链表],jdk8.0 底层[数组+ 链表+红黑树]

在这里插入图片描述

  • HashTable
    1)存放的元素是键值对: 即 K-V
    2)hashtable的键和值都不能为null
    3)hashTable 使用方法基本上和HashMap一样
    4)hashTable 是线程安全的,hashMap 是线程不安全的

  • Properties
    1)Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存数据;
    2)他的使用特点和Hashtable类似,键和值都不能为null;
    Properties 还可以用于 从 xxx.properties 文件中,加载数据Properties类对象并进行读取和修改;
    3)工作后 xxx.properties 文件通常作为配置文件。

TreeMap、TreeSet

  • TreeSet的底层还是TreeMap
    在这里插入图片描述
  • TreeSet元素不能重复;TreeMap中key不能重复且不能为null
  • TreeSet和TreeMap可以使用有参构造器自定义(comparator)排序
    在这里插入图片描述

Collections工具类

  • reverse(List): 反转 List 中元素的顺序
  • shuffle(List): 对 List 集合元素进行随机排序
  • sort(List): 根据元素的自然顺序对指定 List 集合元素按升序排序
  • sort(List,Comparator): 根据指定的 Comparator 产生的顺序对 List 集合元素进行排序
  • swap(List,int,int): 将指定 list 集合中的i 处元素和i处元素进行交换
  • Object max(Collection): 根据元素的自然顺序,返回给定集合中的最大元素
  • Object max(Collection,Comparator): 根据 Comparator 指定的顺序返回给定集合中的最大元素
  • Object min(Collection)
  • Object min(Collection, Comparator)
  • int frequency(Collection,Object): 返回指定集合中指定元素的出现次数
  • void copy(List dest,List src): 将src中的内容复制到dest中
  • boolean replaceAll(List list,Object oldVal, Object newVal): 使用新值替换 List 对象的所有旧值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值