日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Java并發(fā)編程之詳解ConcurrentHashMap類

瀏覽:83日期:2022-08-10 08:37:16
前言

由于Java程序員常用的HashMap的操作方法不是同步的,所以在多線程環(huán)境下會(huì)導(dǎo)致存取操作數(shù)據(jù)不一致的問題,Map接口的另一個(gè)實(shí)現(xiàn)類Hashtable 雖然是線程安全的,但是在多線程下執(zhí)行效率很低。為了解決這個(gè)問題,在java 1.5版本中引入了線程安全的集合類ConcurrentMap。

Java并發(fā)編程之詳解ConcurrentHashMap類

java.util.concurrent.ConcurrentMap接口是Java集合類框架提供的線程安全的map,這意味著多線程同時(shí)訪問它,不會(huì)影響map中每一條數(shù)據(jù)的一致性。ConcurrentMap接口有兩個(gè)實(shí)現(xiàn)類ConcurrentHashMap和ConcurrentSkipListMap,經(jīng)常被使用的是ConcurrentHashMap,我們來重點(diǎn)關(guān)注它。

一、創(chuàng)建ConcurrentHashMap對(duì)象

通過下面的代碼創(chuàng)建ConcurrentHashMap

// 創(chuàng)建容量為8,負(fù)載系數(shù)為0.6的ConcurrentHashMapConcurrentHashMap<Key, Value> numbers = new ConcurrentHashMap<>(8, 0.6f);

使用上面的代碼,我們創(chuàng)建一個(gè)叫做numbers的ConcurrentHashMap對(duì)象。

Key - 用于關(guān)聯(lián)Map中每個(gè)元素的唯一標(biāo)識(shí) Value - Map中每個(gè)元素,可以通過key值獲取value

需要我們特別注意的是new ConcurrentHashMap<>(8, 0.6).

capacity容量 - 第一個(gè)參數(shù)表示這個(gè)map的容量是8,也就是說這個(gè)對(duì)象可以存儲(chǔ)8個(gè)鍵值對(duì) loadFactor負(fù)載因子 - 這個(gè)map對(duì)象的負(fù)載因子是 0.6. 這意味著,每當(dāng)我們的哈希表被填滿60%的時(shí)候,條目就會(huì)被移動(dòng)到一個(gè)新的哈希表,其容量大小是原來哈希表的兩倍。

默認(rèn)容量與負(fù)載因子我們還可以通過下面的代碼初始化一個(gè)ConcurrentHashMap對(duì)象,默認(rèn)情況下capacity=16,loadFactor=0.75

ConcurrentHashMap<Key, Value> numbers1 = new ConcurrentHashMap<>();二、ConcurrentHashMap常用方法2.1. 向ConcurrentHashMap插入元素 put(K,V) - 向map中插入key/value 鍵值對(duì)數(shù)據(jù) putAll(map) - 把另一個(gè)map中的所有entries插入到當(dāng)前的map中 putIfAbsent(K,V) - 向map中插入key/value 鍵值對(duì)數(shù)據(jù),如果該鍵值對(duì)的key在map不存在則插入數(shù)據(jù),否則不做操作。

import java.util.concurrent.ConcurrentHashMap;class Main { public static void main(String[] args) {// 創(chuàng)建ConcurrentHashMap 用于保存偶數(shù)ConcurrentHashMap<String, Integer> evenNumbers = new ConcurrentHashMap<>();// 使用put()方法插入數(shù)據(jù)evenNumbers.put('Two', 2);evenNumbers.put('Four', 4);// 使用putIfAbsent()插入數(shù)據(jù)evenNumbers.putIfAbsent('Six', 6);System.out.println('偶數(shù)集合ConcurrentHashMap: ' + evenNumbers);//創(chuàng)建ConcurrentHashMap用于保存整數(shù)ConcurrentHashMap<String, Integer> numbers = new ConcurrentHashMap<>();numbers.put('One', 1);// 使用putAll()插入數(shù)據(jù)numbers.putAll(evenNumbers);System.out.println('整數(shù)集合ConcurrentHashMap: ' + numbers); }}

輸出結(jié)果:

偶數(shù)集合ConcurrentHashMap: {Six=6, Four=4, Two=2}整數(shù)集合ConcurrentHashMap: {Six=6, One=1, Four=-4, Two=2}2.2.批量獲取ConcurrentHashMap 元素 entrySet()- 獲取 map中key/value 鍵值對(duì)集合 keySet()- 獲取map中所有的key的集合 values()- 獲取map中所有的value的集合

import java.util.concurrent.ConcurrentHashMap;class Main { public static void main(String[] args) {ConcurrentHashMap<String, Integer> numbers = new ConcurrentHashMap<>();numbers.put('One', 1);numbers.put('Two', 2);numbers.put('Three', 3);System.out.println('ConcurrentHashMap: ' + numbers);// 獲取 map中key/value 鍵值對(duì)集合System.out.println('Key/Value mappings: ' + numbers.entrySet());// 獲取map中所有的key的集合System.out.println('Keys: ' + numbers.keySet());// 獲取map中所有的value的集合System.out.println('Values: ' + numbers.values()); }}

輸出結(jié)果

ConcurrentHashMap: {One=1, Two=2, Three=3}Key/Value mappings: [One=1, Two=2, Three=3]Keys: [One, Two, Three]Values: [1, 2, 3]

2.3. 獲取指定Key元素的value值 get() - 獲取指定key元素的value值,如果key不存在返回null getOrDefault() - 獲取指定key元素的value值,如果key不存在返回一個(gè)指定的默認(rèn)值

import java.util.concurrent.ConcurrentHashMap;class Main { public static void main(String[] args) {ConcurrentHashMap<String, Integer> numbers = new ConcurrentHashMap<>();numbers.put('One', 1);numbers.put('Two', 2);numbers.put('Three', 3);System.out.println('ConcurrentHashMap: ' + numbers);// 獲取指定key元素的value值,如果key不存在返回nullint value1 = numbers.get('Three');System.out.println('Using get(): ' + value1);// 獲取指定key元素的value值,如果key不存在返回一個(gè)指定的默認(rèn)值int value2 = numbers.getOrDefault('Five', 5);System.out.println('Using getOrDefault(): ' + value2); }}

輸出結(jié)果

ConcurrentHashMap: {One=1, Two=2, Three=3}Using get(): 3Using getOrDefault(): 5

2.4.移除ConcurrentHashMap中的元素 remove(key) - 根據(jù)指定的key刪除map中的元素,并將該元素返回 remove(key, value) - 只有當(dāng)map中存在指定的鍵映射到指定的值時(shí),才會(huì)從map中刪除條目,并返回一個(gè)布爾值。返回true表示刪除成功,否則表示map中沒有這個(gè)鍵值對(duì)。

import java.util.concurrent.ConcurrentHashMap;class Main { public static void main(String[] args) {ConcurrentHashMap<String, Integer> numbers = new ConcurrentHashMap<>();numbers.put('One', 1);numbers.put('Two', 2);numbers.put('Three', 3);System.out.println('ConcurrentHashMap: ' + numbers);// 根據(jù)指定的key刪除map中的元素,并將該元素返回int value = numbers.remove('Two');System.out.println('Removed value: ' + value);// 只有當(dāng)map中存在指定的鍵映射到指定的值時(shí),才會(huì)從map中刪除條目,并返回一個(gè)布爾值。boolean result = numbers.remove('Three', 3);System.out.println('Is the entry {Three=3} removed? ' + result);System.out.println('Updated ConcurrentHashMap: ' + numbers); }}

輸出結(jié)果

ConcurrentHashMap: {One=1, Two=2, Three=3}Removed value: 2Is the entry {Three=3} removed? TrueUpdated ConcurrentHashMap: {One=1}

到此這篇關(guān)于Java并發(fā)編程之詳解ConcurrentHashMap類的文章就介紹到這了,更多相關(guān)Java ConcurrentHashMap內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲人妖在线| 激情久久久久久久| 亚洲精品免费观看| 午夜性色一区二区三区免费视频| 清纯唯美亚洲综合一区| 日韩av在线中文字幕| 亚洲激情国产| 日韩中文字幕麻豆| 国产精品永久| 日韩av电影一区| 国产综合色产| 999精品一区| 国产精品2023| 久久av在线| 日韩高清中文字幕一区二区| 欧美粗暴jizz性欧美20| 日韩午夜av在线| 免费精品视频| 久久福利精品| 91精品视频一区二区| 日韩天堂av| 奶水喷射视频一区| 日韩精品一卡二卡三卡四卡无卡| 欧美黑人巨大videos精品| 综合五月婷婷| 欧美日韩视频一区二区三区| 久久蜜桃资源一区二区老牛| 麻豆视频在线观看免费网站黄| 999久久久精品国产| 日本一区二区高清不卡| 成人啊v在线| 成午夜精品一区二区三区软件| 国产在线视频欧美一区| 久久男人av| 亚洲我射av| 亚洲一区观看| 国产精品1区在线| 欧美中文一区二区| 水野朝阳av一区二区三区| 九九久久国产| 日韩在线网址| 在线成人动漫av| 欧美激情aⅴ一区二区三区| 欧美 日韩 国产一区二区在线视频 | 捆绑调教美女网站视频一区| 欧美成人综合| 欧美黑人做爰爽爽爽| 欧美日韩在线二区| 欧美日本二区| 国产精品腿扒开做爽爽爽挤奶网站| 国产精品久久乐| 巨乳诱惑日韩免费av| 国产一区二区三区不卡av| 日韩午夜在线| 中国字幕a在线看韩国电影| 亚洲精品激情| 欧美日韩国产一区二区三区不卡| 国产精品久久久久av蜜臀| 91成人精品视频| 国产一区二区三区国产精品| 日韩精品欧美成人高清一区二区| 99精品视频精品精品视频| 91精品国产经典在线观看| 亚洲成人日韩| 三上悠亚国产精品一区二区三区 | 国产激情综合| 免费观看在线色综合| 久久九九国产| 久久麻豆视频| 国产亚洲一卡2卡3卡4卡新区| 91成人网在线观看| 欧美成人基地| 成人在线观看免费视频| 日韩欧美中文字幕电影 | 亚洲久久视频| 一区在线免费观看| 夜鲁夜鲁夜鲁视频在线播放| 国产福利资源一区| 欧美日韩一区自拍| 亚洲免费成人av在线| 黄色av一区| 欧美日韩三区| 婷婷六月综合| 亚洲午夜91| 亚洲午夜av| 欧美二区视频| 亚洲女同av| 国产一区二区精品福利地址| 免费一级欧美在线观看视频| 你懂的网址国产 欧美| 国产欧美欧美| 欧美在线首页| 日本午夜精品视频在线观看| 色综合视频一区二区三区日韩| 99热精品在线| 亚洲中字黄色| 另类激情亚洲| 亚洲精品影视| 日本不卡视频在线观看| 日韩av一二三| 国产精品羞羞答答在线观看| 久久狠狠亚洲综合| 国产精品夜夜夜| 国产精品videossex久久发布| 国产精品麻豆成人av电影艾秋| 国产精品黄网站| 国产一区福利| www.com.cn成人| 久久高清精品| 国产婷婷精品| 婷婷五月色综合香五月| 欧美一区自拍| 久久av影院| 一区二区三区四区日本视频| 久久久久久久久久久9不雅视频| 欧美日韩中文一区二区| 免费久久精品| 久久xxxx| 欧美精品中文| 国产一区丝袜| 亚洲福利一区| 亚洲1区在线| 精品视频在线观看网站| 日韩精品首页| 男人的天堂久久精品| 日韩高清在线不卡| 精品亚洲a∨| 婷婷亚洲综合| 欧美欧美黄在线二区| bbw在线视频| 最新亚洲一区| 日韩精品一区二区三区中文字幕| 国产精品观看| 99久久婷婷这里只有精品| 亚洲人www| 久久一区亚洲| 亚洲激情二区| 美女性感视频久久| 国产亚洲精品v| 欧美极品一区二区三区| 国产综合亚洲精品一区二| 日韩有吗在线观看| 韩国三级一区| 人人爱人人干婷婷丁香亚洲| 最新中文字幕在线播放| 亚洲综合另类| 国产亚洲第一伦理第一区| 成人久久久久| 欧美天堂一区二区| 欧美日韩国产在线观看网站 | 久久久久伊人| 在线亚洲激情| 精品国产乱码久久久| 免费在线看一区| 91综合网人人| 亚洲精品韩国| 欧美色图一区| 欧美成人aaa| 国产亚洲精品v| 精品少妇av| 亚洲乱码视频| 欧美成人综合| 福利片在线一区二区| 久热精品在线| 香蕉视频亚洲一级| 国产精品porn| 亚洲免费资源| 婷婷综合网站| 在线天堂中文资源最新版| 欧美日韩xxxx| 美女黄网久久| 日本久久成人网| 欧美激情综合| 综合在线一区| 婷婷国产精品| 福利一区二区| 国产欧美另类| 亚欧洲精品视频在线观看| 国户精品久久久久久久久久久不卡| 国产精品v亚洲精品v日韩精品| 蜜臀av亚洲一区中文字幕| 国产综合婷婷| 精品丝袜在线| 老司机精品视频网| 欧美中文高清| 一区二区精品| 国产视频久久| 五月天久久777| sm捆绑调教国产免费网站在线观看| 日韩激情一区二区| 最近国产精品视频| 久久都是精品| 亚洲黄色在线| 国产高清一区二区| 99久久久久国产精品| av高清不卡| 国产成人免费视频网站视频社区| 国产剧情在线观看一区| 日本一区二区中文字幕| 中文字幕亚洲在线观看|