我的学习之路_第八章_map集合

【Map集合】




Map集合中常用方法:


1:  返回值:value值   put(K key, V value)  往Map集合中添加元素,如果key值重复,那么将返回被覆盖的value值.
2:  返回值:value值   get(Object key)      传入一个key值,返回相对应的value值.如果没有,则返回null.
3:  返回值:value值   remove(Object key)   传入一个key值,删除此key值与相对应的value值.返回被删除的value值.


Map集合的特点:
1:Map集合是一个双列集合,赋值的时候必须同时给key值和value值赋值.
2:Map集合是一个无序集合.
3:Map集合的key值不可以重复,value值可以重复.
4:Map集合中一个key值只能对应一个value值.
5:定义Map集合时,key和value可以使用相同的数据类型,也可以使用不同的数据类型.



Map集合的第一种遍历方式:(通过键查找值的方式)


返回值 Set<K>    keySet()   返回此映射中包含的键的Set视图. 把Map集合中的键存储到一个Set集合中


遍历Map集合的步骤:


1:定义Map集合,往集合中添加元素.(put方法添加元素)
2:调用Map集合中的方法keySet,把Map集合中的键存储到一个Set集合中
3:遍历Set集合,获取Map集合所有的键值.
4:通过获取到的键,使用Map集合的方法get查找到对应的key值.


Map集合的第二种遍历方式:(遍历键值对的方式)


返回值 Set<Map.Entry<K,V>>  entrySet()  返回此映射中包含的映射关系的Set视图


遍历Map集合的步骤:


1:定义一个Map集合,往集合中添加元素.(用put方法)
2:调用Mao集合中的方法 entrySet ,把Map集合中的每一个映射关系(结婚证)放入到Set集合中.
3:遍历Set集合,获取每个映射关系 Entry<K,V>.
4:使用 Entry<K,V> 中的方法 getKey 和 getValue 获取键和值


★注意:使用自定义类型作为Map集合的键Key 时, 必须要重写hashcode 和 equals . 来保证key 的唯一性.






Map集合中的实现类:




◆ HashMap<K,V> 线程不安全,运行速度快


底层数据结构是哈希表,特点 无序.由于要保证键的唯一,不重复,需要重写键的 hashcode() 方法 和 equals()方法.

◆ LinkedHashMap<K,V> 继承(extends) HashMap


底层数据结构为哈希表_链表结构.特点: 有序,不重复.由于要保证键的唯一,不重复,需要重写键的 hashcode() 方法 和 equals()方法.


◆ Hashtable   线程安全,运行速度慢


和HashMap一样.  JDK1.2开始被 HashMap取代.  特点 不能存 null 值. 


虽然Hashtable被取代了,但是他的子类 Properties 依然活跃在开发的舞台.


可变参数:


JDK1.5之后出来的新特性. 可以接受多个同类型的参数.
底层就是一个数组


格式: 修饰符  返回值类型 方法名 (参数类型...形参名){ }


★注意: 1:一个方法的参数,只能使用一个可变参数
2:如果方法的参数有多个,可变参数必须写在参数列表的末尾.







Arrays数组工具类:


用来对数组进行操作,是一个静态方法,直接类名.方法名调用.


返回值:Object     binarySearch(Object[] a, Object key)  使用二分法查找法来查找指定的元素,没有则会返回(1(插入点)-1).
返回值:Object[]   copyOfRange(旧数组,要复制的开始索引,新数组,索引,复制几个) 将指定的数组的指定返回复制到一个新的数组.
            sort(Object[]  o)       对指定的数组进行升序排序
返回值:String   tostring(Object[]  o)   返回指定数组内容的字符串表示形式.


Collections集合工具类:


用来对集合进行操作,是一个静态方法. 直接类名.方法名调用.


没有返回值  shuffle(List<?> list)  将集合中的顺序打乱.
没有返回值  sort(List<T> list)   传一个集合,对集合进行升序排序.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值