Map的一次小小记录和学习

2018-09-01 05:40:36来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

对于Map集合不太熟悉,所以这次进行加强学习。


 

 

Map是一个键值对的集合,key是一个Set集合,value是一个Collection的集合

 

实现类有三种。HashMapTreeMapHashTable

 

其中HashMap底层是一个哈希表,键值都可以是null

 

TreeMap 底层是一个二叉树,支持健排序

 

HashTable 也是一个哈希表,键值都不可为null,这个可能已经过时了。

 

 


 

 

 

 

如何遍历Map,有很多种方法。这边主要说2种

 

1. Entry

 

2. Iterator

 

Entry:

Map<String, String> map = new HashMap<>();
        map.put("chashaobao1", "123");
        map.put("chashaobao2", "1234");
        map.put("chashaobao3", "1235");
        map.put("chashaobao4", "1236");        
        for(Entry<String, String> s : map.entrySet()) {
            System.out.println(s);
        }

打印的结果:

chashaobao1=123

chashaobao2=1234

chashaobao3=1235

chashaobao4=1236

 

Iterator iter = map.entrySet().iterator();
        while(iter.hasNext()){
            Entry<String, String> et = (Entry<String, String>) iter.next();
            System.out.println("----------");
            System.out.println(et.getKey());
            System.out.println(et.getValue());
        }

打印的结果:

----------

chashaobao1

123

...........(此处省略)

----------

chashaobao4

1236

 

结论:都是得到entry对象然后调取方法,获取键值。这些方法都不唯一。还有很多方法可以遍历Map

 

在Map集合里面还有containskey() 方法来判断是否存有对应的键名.使用containskey可以避免出现一些奇怪的问题.

因为HashMap是允许Null作为键值,所以如果get(),可能会出现判断不了的情况。一种是在集合中没有该键对象,另一种是该键对象为null

 

这是我对Map的一些浅薄的见解,如有什么不对,请大神指出。虽然感觉看到的人也不多。算是对自己的学习记录一下。

 

目前正是一个Java的小菜鸟在IT大道中走出的一小步

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:分布式缓存:爱我你怕了吗?

下一篇:Redis分区