java_0820

https://blog.csdn.net/weixin_44165237/article/details/99762667 0819连接

Map

1.Map是双列集合的顶层接口
2.Map通常是指具有以键值对为元素的键值对集合
3.Map<K,V>,K是唯一的,Values是不唯一的
4.键是唯一,值有多种类型,有对象类型或者又是Map类型,啥都有
5.键可以是看做是List集合的一个索引,将map的键用List来装

用老师话介绍:

   Map  是一个接口 是双列集合的顶级        Collection  是单列集合的顶级 
        
        Map:是以键值对的形式来进行存储(Key,Values);
        
        Map map 里的键都是唯一的,不能够重复, values是可以重复,每一个键只能对应一个值(一一对应,就是映射的关系)
      
        Map 的具体实现类有 HashMap(重点) TreeMap Hashtable(比较少)

         Map.Entry<K,V>  的解释 :    也就是map  有一个内部接口的名字叫Entry

         map 常规的一些方法:(添加的方法)  V put(K key,V value)  通过键值对来进行添加

                              移除的方法: V remove(Object key)  通过键来删除键值对 (没有根据索引来移除)

                              判断类型的方法: boolean containsKey(Object key) 判断这个键是否存在
                                              boolean containsValue(Object value) 判断这个值是否存在
                                              boolean isEmpty() 是否存在元素  

                              获取性的方法:  void clear() 清除所有的元素
                                              V get(Object key)  通过键来获取值
                                              int size() 获取集合的长度 
                                              Collection<V> values()  获取所有的values()
                                              Set<K> keySet()  获取map中所有的键  返回值是一个Set


                               修改:根据键来修改值,键必须存在  V put(K key,V value)

Map接口中定义的常用方法:

(1)void clear():删除该Map对象中所有的键值对。

(2)boolean containsKey(Object key):查询Map中是否包含指定key。

(3)boolean containsValue(Object value):查询Map中是否包含一个或多个value。

(4)Set entrySet():返回Map中所包含的键值对所组成的Set集合,每个集合元素都是Map.Entry对象。

(5)Object get(Object obj):返回指定key所对应的value。如果没有,这返回null。

(6)boolean isEmpty():查询该Map是否为空,如果为空则返回true。

(7)Set keySet():返回该Map中所有key组成的Set集合。

(8)Object put(Object key, Object
value):添加一个键值对,如果当前Map中已经有一个与该key相等的键值对,则新的键值对将覆盖原来的键值对。

(9)void putAll(Map m):将指定Map中的键值对复制到m中。

(10)Object remove(Object key):删除指定key所对应的键值对,如果不存在,则返回null。

(11)int size():返回Map里的键值对个数。

(12)Collection values():返回该Map里所有的vlaue组成的Collection。

Map中包括一个内部类Entry。该类封装了一个键值对。

Entry包含的三个方法: 它表示的是一个键值对的对象

(1)Object  getKey():返回该Entry里包含的key值。

(2)Object   getValue():返回该Entry里包含的value值。

(3)Object   setValue(V value):设置该Entry里包含的value值,并返回新设置的value值。

Collections

1.使用时注意它是until包下的工具类,是对List集合操作的工具类,不是map;
2.常用它的静态方法,对List集合操作

sort: Colletions.sort(List list),对集合进行自然升序
public static <T extends Comparable<? super T>> void sort(List<T> list)
根据元素的自然顺序 对指定列表按升序进行排序
binarySearch 二分查找搜索指定的元素,前提是已经排好序
public static <T> int binarySearch(List<? extends Comparable<? super T>> list,
                                   T key)
frequency
public static int frequency(Collection<?> c,
                            Object o)
                            返回指定 collection 中等于指定对象的元素数
reverse 反转集合元素顺序
public static void reverse(List<?> list)
shuffle 对列表进行索引的随机置换,即元素位置交换
public static void shuffle(List<?> list)

总结
今天学习了Map的双列顶层集合,可以说是跟Collection的顶层单列集合有的一挥。
我认识到Map的键值对很有意思,它的键可以使用List集合来收集,再通过list集合的
Collections工具类对所谓的List集合进行操作,什么反转啊,打乱呀,排序呀,统统都是在List集合下的操作。我认识到操作List的索引,实质是操作map的键,同样键不是具有唯一性么,这键值所配对,自然就操作了值啦。
键值对的值可以是很复杂很复杂的类型,比如Map嵌套map,需要层层剥皮才行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值