欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Map的一次小小记录和学习

程序员文章站 2022-05-18 23:00:40
对于Map集合不太熟悉,所以这次进行加强学习。 Map是一个键值对的集合,key是一个Set集合,value是一个Collection的集合 实现类有三种。HashMap,TreeMap,HashTable。 其中HashMap底层是一个哈希表,键值都可以是null TreeMap 底层是一个二叉树 ......

对于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大道中走出的一小步