加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Map.Entry 和 ConcurrentHashMap 使用

发布时间:2020-12-15 07:22:23 所属栏目:Java 来源:网络整理
导读:一、内容介绍; 主要简易介绍Map.Entry?和 ConcurrentHashMap?和使用,不深入专研源码的实现方式; Map.Entry Map是java中的接口,而Map.Entry是Map的一个内部接口;entrySet是Map对象的一个方法,返回一个实现Map.Entry的接口的对象集合,集合中每个对象都是

一、内容介绍;

  主要简易介绍Map.Entry?和 ConcurrentHashMap?和使用,不深入专研源码的实现方式;

  Map.Entry

  Map是java中的接口,而Map.Entry是Map的一个内部接口;entrySet是Map对象的一个方法,返回一个实现Map.Entry的接口的对象集合,集合中每个对象都是Map中的一个键/值对;然后通过Map.Entry的方法可以获取到Map集合的Key和Value;?

* Object getKey(): 返回条目的关键字 
* Object getValue(): 返回条目的值
* Object setValue(Object value): 将相关映像中的值改为value,并且返回旧值;

?

? ?? HashMap、HashTable、ConcurrentHashMap

  以下三个都是存放key-value键值对的集合;其中key和value都是对象,并且不能包含重复key,但可以包含重复的value。

* HashMap:非线程安全;HashMap把Hashtable的contains方法去掉了,改成containsValue和containsKey;Hashtable中; key和value允许出现null值;
* HashTable:线程安全;Hashtable则保留了contains,containsValue和containsKey三个方法,其中contains和containsValue功能相同; key和value都不允许出现null值
* ConcurrentHashMap:线程安全且效率高,多线程中推荐使用;key和value都不允许出现null值

?

二、测试样例;

 1 public class MapEntryTest {
 2 
 3     public static void main(String[] args) {
 4         // TODO Auto-generated method stub
 5         Map<String,String> map = new HashMap<String,String>();
 6         map.put("Andy","90");
 7         map.put("Tony","80");
 8         map.put("Jason","96");
 9         for(Map.Entry<String,String> entry : map.entrySet()){
10             System.out.println("key="+entry.getKey()+"  value="+entry.getValue());
11             if(entry.getKey().equals("Tony")){
12                 entry.setValue("100"); //更改value的值并返回旧值;
13             }
14         }
15         System.out.println(map.get("Tony"));
16     }
17 
18 }
 1 public class ConcurrentHashMapTest {
 2 
 3     public static void main(String[] args) {
 4         // TODO Auto-generated method stub
 5         Map<String,"90");
 7         map.put(null,null);
 8         System.out.println(map.size());
 9         
10         Map<String,String> map2 = new ConcurrentHashMap<String,String>();
11         map2.put("Tony","80");
12         System.out.println(map2.get("Tony"));
13         
14         Map<String,String> map3 = new Hashtable<String,String>();
15         map3.put("Jack","20");
16         System.out.println(map3.get("Jack"));
17     }
18 
19 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读