Cheug's Blog

当前位置:网站首页 / JAVA / 正文

Map集合接口

2019-04-07 / JAVA / 948 次围观 / 0 次吐槽 /

Map是属于java.util的一个接口Map<K,V>

                类型参数:

                K - 映射所维护的键的类型

                V - 映射值的类型

                Map是将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。

                

                Map接口和Collection接口的不同

                --Map是双列的,Collection是单列的

                --Map的键唯一,Collection的Set是唯一的,List不是惟一的

                

                Map:有几个常用的子类HashMap,LinkedHashMap,TreeMap,Hashtable,Properites


Map的功能

             添加功能

                V put(K key,V value):添加元素。

                如果键是第一次存储,就直接存储元素,返回null

                如果键不是第一次存在,就用值把以前的值替换掉,返回以前的值

             删除功能

                void clear():移除所有的键值对元素

                V remove(Object key):根据键删除键值对元素,并把值返回

             判断功能

                boolean containsKey(Object key):判断集合是否包含指定的键

                boolean containsValue(Object value):判断集合是否包含指定的值

                boolean isEmpty():判断集合是否为空

             获取功能

                V get(Object key):根据键获取值

                Set<K> keySet():获取集合中所有键的集合

                Collection<V> values():获取集合中所有值的集合

             长度功能

                     int size():返回集合中的键值对的个数

HashMap使用注意事项

                声明HashMap时的键值可以是任意对象

                如果有重复的键,会把以前的替换

                值能为空

                键能为空,但这样写没什么意义

                put方法的返回值

                如果键是第一次存储,就直接存储元素,返回null

                如果键不是第一次存在,就用值把以前的值替换掉,返回以前的值


Map的遍历,有两种方式

                    Map集合的遍历一(键找值)

                                //创建Map对象

                                Map<String,String> map = new HashMap<String,String>();

                                //获取map所有键

                                Set<String> keys = map.keySet();

                                //遍历键

                                for(String key : keys){

                                //通过key获取值

                                String value =  map.get(key);

                                }

                     Map集合的遍历二(键值对对象Entry找键和值)

                                // 创建Map对象

                                Map<String,String> map = new HashMap<String,String>();

                                //java.util.Map.Entry

                                /**

                                 * Entry:称为键值对 对象

                                 * */

                                Set<Entry<String, String>> entries = map.entrySet();

                                //遍历

                                for(Entry<String, String> entry : entries){

                                String key = entry.getKey();

                                String value = entry.getValue();

                                }


LinkedHashMap

                    LinkedHashMap是存和取的顺序是一样

                    HashMap是存和取的顺序不是一样

                    LinkedHashMap它是继承HashMap


TreeMap

                    TreeMap会对键key进行排序

                    TreeMap的key,如果是自定义对象话,这个对象要实现Comparable接口,

                    或者说在new TreeMap的时候,传一个comparator参数


Powered By Cheug's Blog

Copyright Cheug Rights Reserved.