java MAP集合
map集合的特点有哪些?
map集合是无序的,键值对,建不能重复,值可以重复,集合中的键可以为空
如何给map集合赋值?可以调用map.put()方法,进行赋值(注意!键不可以重复)
如何获取到map集合的值? 可以调用map.get()方法,可以通过键获取值
运行结果
如何遍历map集合?便利map集合的方法有很多种方法如下
方法1:先获取所有建的set集合,在遍历(此方法通过建获取值)
运行结果如下
方法2:取出保存所有Entry的Set,在遍历set即可(此方法可以便利出键和值)
运行结果如下
如何使map不被覆盖?可以运用以下方法(使用map.putIfAbsent()方法则是如果key不存在则执行写入)
运行结果如下
HashMap特点:线程不安全,最常用,速度快
在jdk早期版本中HashMap存在线程不安全如果他是一个类的成员变量那么它很可能存在多个线程同时去访问HashMap的情况它不能能够保证线程安全
HashTabe :它的特点是线程安全的但是性能不高
ConcurrentHashMap:线程安全,比HashTable性能高
ConcurrentHashMap 它的调用使用方法和map是一样的但是内部的实现逻辑不一样(当我们需要线程安全时可以使用ConcurrentHashMap )(ConcurrentHashMap 比HashTabe 性能高)
TerrMap:主要用在需要对key值进行排序的时候使用
运行结果如下:
LinkedHashMap:它是继承自HashMap但是LinkedHashMap是有序的,且默认为插入顺序
(当我们希望有顺序地去存储key-value时,就需要使用LinkedHashMap了)演示代码如下
运行结果如下
总结:
在map中用的最多有两个,一个是HashMap(这是用的最多的),如果说他是一个成员变量我们需要保证他的线程安全性的话我们可以使用ConcurrentHashMap
这两个是用的比较多的HashTable虽然安全但是新能不高,在我们需要手动指定顺序时我们则会用到TreeMap