K - ãã®ãããã§ä¿æãããããŒã®åV - ããããããå€ã®åpublic class ConcurrentHashMap<K,V> extends AbstractMap<K,V> implements ConcurrentMap<K,V>, Serializable
Hashtableãšåãæ©èœä»æ§ã«åŸããHashtableã®åã¡ãœããã«å¯Ÿå¿ããããŒãžã§ã³ã®ã¡ãœãããå«ã¿ãŸãã ãã ãããã¹ãŠã®æäœãã¹ã¬ããã»ã»ãŒãã§ããå Žåã§ããååŸæäœã«ããã¯ã¯å«ãŸããªããããããŒãã«å
šäœãããã¯ãããŠãã¹ãŠã®ã¢ã¯ã»ã¹ãæåŠãããããšã¯ãããŸããã ãã®ã¯ã©ã¹ã¯ããã®ã¹ã¬ããã®å®å
šæ§ã«äŸåãããããã®åæã®è©³çްã«ã¯äŸåããªãããã°ã©ã ã§Hashtableãšå®å
šã«çžäºéçšã§ããŸãã
éåžžãååŸæäœ(getãå«ã)ã§ã¯ãããã¯ã¯å®è¡ãããªããããæŽæ°æäœãšãªãŒããŒã©ããããå ŽåããããŸã(putããã³removeãå«ã)ã ååŸã§ã¯ãéå§æã«ä¿æããŠããæŽæ°æäœã®ãã¡ãæåŸã«å®äºããæŽæ°æäœã®çµæãåæ ãããŸãã (ã€ãŸããæå®ãããããŒã®æŽæ°æäœã«ãã£ãŠãæŽæ°ãããå€ãå ±åãããã®ããŒã®(null以å€ã®)ååŸãšã®éã«happens-beforeé¢ä¿ãçãŸããŸãã) putAllãclearãªã©ã®éèšæäœã§ã¯ã䞊è¡ååŸã¯äžéšã®ãšã³ããªã®æ¿å
¥ãŸãã¯åé€ã ããåæ ããå¯èœæ§ããããŸãã åæ§ã«ãIteratorãSpliteratorããã³Enumerationã¯ãããæç¹ãŸãã¯ã€ãã¬ãŒã¿ããã³åæã®äœæä»¥éã®ããã·ã¥ã»ããŒãã«ã®ç¶æ
ãåæ ããèŠçŽ ãè¿ããŸãã ããããConcurrentModificationExceptionãã¹ããŒããããšã¯ãããŸããã ããããäžåºŠã«1ã€ã®ã¹ã¬ããã®ã¿ãã€ãã¬ãŒã¿ã䜿çšããããã«èšèšãããŠããŸãã sizeãisEmptyããã³containsValueãå«ãéçŽã¹ããŒã¿ã¹ã»ã¡ãœããã®çµæã¯ãéåžžãä»ã®ã¹ã¬ããã§ãããã®äžŠè¡æŽæ°ãè¡ãããŠããªãå Žåã«ã®ã¿æå¹ã§ããããšã«çæããŠãã ããã ãã以å€ã®å Žåããããã®ã¡ãœããã®çµæã¯äžæçãªç¶æ
ãåæ ããŠãããããã¢ãã¿ãªã³ã°ãæšå®ãç®çãšããå Žåã«ã¯åé¡ãããŸããããããã°ã©ã ã®å¶åŸ¡ã«ã¯é©ããŠããŸããã
ãã®ããŒãã«ã¯ãç«¶å(ã€ãŸããå¥åã®ããã·ã¥ã»ã³ãŒããæã£ãŠããããããŒãã«ã»ãµã€ãºãæ³ãšããåãã¹ãããã«å
¥ãããŒ)ã®æ°ãå€ãããå Žåã«åçã«æ¡åŒµãããäºæ³ãããå¹³å广ãšããŠ(ãµã€ãºå€æŽã®è² è·ä¿æ°ã®ãããå€0.75ã«å¯Ÿå¿ããŠ)ãããã³ã°åœããããã2åã®ãã³ãä¿æããŸãã ãããã³ã°ã远å ããã³åé€ããããšããã®å¹³åãšã®å·®éã倧ãããªãããšããããŸãããå
šäœãšããŠã¯ãããã·ã¥ã»ããŒãã«ã«é¢ããŠäžè¬ã«åãå
¥ããããŠããæéãšå®¹éã®ãã¬ãŒããªããç¶æãããŸãã ãã ãããã®ããã·ã¥ã»ããŒãã«ãŸãã¯ãã®ä»ã®çš®é¡ã®ããã·ã¥ã»ããŒãã«ã®ãµã€ãºå€æŽã¯ãçžå¯Ÿçã«äœéãªæäœã§ããå¯èœæ§ããããŸãã å¯èœãªå Žåã¯ããµã€ãºã®æšå®å€ãã³ã³ã¹ãã©ã¯ã¿ã®ãªãã·ã§ã³åŒæ°ã§ããinitialCapacityãšããŠæå®ããããšããèŠãããŸãã ã³ã³ã¹ãã©ã¯ã¿ã®è¿œå ã®ãªãã·ã§ã³åŒæ°ã§ããloadFactorã¯ãæå®ãããèŠçŽ æ°ã«å¯ŸããŠå²ãåœãŠãé åã®éãèšç®ããããã«äœ¿çšãããããŒãã«å¯åºŠãæå®ããããšã«ãããããŒãã«ã®åæå®¹éãã«ã¹ã¿ãã€ãºããè¿œå ææ®µãæäŸããŸãã ãŸãããã®ã¯ã©ã¹ã®åã®ããŒãžã§ã³ãšã®äºææ§ãä¿ã€ãããäºæ³ãããconcurrencyLevelãåæãµã€ãºèšå®ã®è¿œå ã®ãã³ããšããŠã³ã³ã¹ãã©ã¯ã¿ã«ãªãã·ã§ã³ã§æå®ããããšãã§ããŸãã ãŸã£ããåãhashCode()ãæã€ããŒãæ°å€ã䜿çšãããšãããã·ã¥ã»ããŒãã«ã®ããã©ãŒãã³ã¹ã¯ç¢ºå®ã«äœäžããŸãã 圱é¿ã軜æžãããããããŒãComparableã§ããå Žåã¯ããã®ã¯ã©ã¹ã§ããŒéã®æ¯èŒé åºã䜿çšããŠããŒã®éè€ãè§£æ¶ã§ããŸãã
ããŒã®ã¿ã察象ã§ãããããããããå€ã(ããããäžæçã«)䜿çšãããªããããŸãã¯ãã¹ãŠãåããããã³ã°å€ãåãå Žåã¯ãConcurrentHashMapã®Setå±éã(newKeySet()ãŸãã¯newKeySet(int)ã䜿çšããŠ)äœæãŸãã¯(keySet(Object)ã䜿çšããŠ)衚瀺ã§ããŸãã
ConcurrentHashMapã¯ãLongAdderã®å€ã䜿çšããcomputeIfAbsentã§åæåããããšã«ãããã¹ã±ãŒã©ãã«ãªé »åºŠããã(ãã¹ãã°ã©ã ããã«ãã»ããã®åœ¢åŒ)ãšããŠäœ¿çšã§ããŸãã ããšãã°ãConcurrentHashMap<String,LongAdder> freqsã«ã«ãŠã³ãã远å ããã«ã¯ãfreqs.computeIfAbsent(k -> new LongAdder()).increment();ã䜿çšã§ããŸãã
ãã®ã¯ã©ã¹ãšãã®ãã¥ãŒããã³ã€ãã¬ãŒã¿ã¯ãMapããã³Iteratorã€ã³ã¿ãã§ãŒã¹ã®ãªãã·ã§ã³ã»ã¡ãœãããã¹ãŠãå®è£
ããŸãã
Hashtableãšåæ§ã«(HashMapãšã¯ç°ãªã)ããã®ã¯ã©ã¹ã¯ãããŒãŸãã¯å€ãšããŠnullã䜿çšãããããšãèš±å¯ããŸããã
ConcurrentHashMapã¯ãã»ãšãã©ã®Streamã¡ãœãããšã¯ç°ãªããããšãã°å
±æã¬ãžã¹ããªå
ã®å€ã®ã¹ãããã·ã§ããã»ãµããªãŒãèšç®ãããšãã«ãä»ã®ã¹ã¬ããã§äžŠè¡ããŠæŽæ°ããããããã§ãå®å
š(ãã€å€ãã®å Žåé©åã«)é©çšãããããã«èšèšãããäžé£ã®é 次ããã³äžŠåã®äžæ¬ãªãã¬ãŒã·ã§ã³ããµããŒãããŸãã 3çš®é¡ã®ãªãã¬ãŒã·ã§ã³ããããããããã«ããŒãå€ããšã³ããªããã³(ããŒãå€)ã®ååŒæ°ãŸãã¯æ»ãå€ããããã¯ãã®äž¡æ¹ãæã€é¢æ°ãåãå
¥ãã4ã€ã®åœ¢åŒããããŸãã ConcurrentHashMapã®èŠçŽ ã¯ç¹å®ã®æ¹æ³ã§é åºä»ããããŠããããç°ãªã䞊åå®è¡ã§ç°ãªãé åºã§åŠçãããå¯èœæ§ããããããæå®ããã颿°ã®æ£ç¢ºæ§ãä»»æã®é åºããèšç®ã®é²è¡äžã«äžæçã«å€æŽãããå¯èœæ§ããããã®ä»ã®ãªããžã§ã¯ããŸãã¯å€ã«äŸåããªãããã«ããŠãã ããããŸããforEachã¢ã¯ã·ã§ã³ã®å Žåãé€ããå¯äœçšããªãããšãçæ³ã§ãã Map.Entryãªããžã§ã¯ãã«å¯Ÿããäžæ¬ãªãã¬ãŒã·ã§ã³ã§ã¯ãsetValueã¡ãœããã¯ãµããŒããããŸããã
ãããã®äžæ¬ãªãã¬ãŒã·ã§ã³ã¯ãparallelismThresholdåŒæ°ãåãå
¥ããŸãã çŸåšã®ãããã»ãµã€ãºãæå®ããããããå€ããå°ãããšæšå®ãããå Žåã¯ãã¡ãœããã鿬¡çã«é²è¡ããŸãã å€Long.MAX_VALUEã䜿çšãããšããã¹ãŠã®äžŠååŠçãæå¶ãããŸãã å€1ã䜿çšãããšããã¹ãŠã®äžŠåèšç®ã«äœ¿çšãããForkJoinPool.commonPool()ããã«æŽ»çšããã®ã«ååãªæ°ã®ãµãã¿ã¹ã¯ã«ããŒãã£ã·ã§ã³åããããšã«ãã£ãŠãæå€§éã®äžŠååŠçãè¡ãããŸãã éåžžã¯ãæåã«ãããã®æ¥µå€ã®ãããããéžæãããã®åŸãªãŒããŒããããšã¹ã«ãŒãããã®ãã©ã³ã¹ãåã£ãäžéå€ã䜿çšããŠããã©ãŒãã³ã¹ãèšæž¬ããŸãã
äžæ¬ãªãã¬ãŒã·ã§ã³ã®äžŠè¡æ§ããããã£ã¯ãConcurrentHashMapã®äžŠè¡æ§ããããã£ããåŸãããŸããget(key)ããã³é¢é£ããã¢ã¯ã»ã¹ã»ã¡ãœããããnull以å€ã®çµæãè¿ããããšãé¢é£ããæ¿å
¥ãŸãã¯æŽæ°ãšã®éã«happens-beforeé¢ä¿ãçãŸããŸãã äžæ¬ãªãã¬ãŒã·ã§ã³ã®çµæã¯ããããã®èŠçŽ åäœã®é¢ä¿ã®æ§æãåæ ããŸã(ãã ãããªãããã®æ¹æ³ã§äŒæ¢ããŠããããšãããã£ãå Žåãé€ãããããå
šäœã«é¢ããŠååçã§ããå¿
èŠã¯ãããŸãã)ã éã«ããããå
ã®ããŒãšå€ãnullã«ãªãããšã¯ãªããããnullã¯çµæãçŸåšååšããªãããšã確å®ãã€ååçã«ç€ºã圹å²ãæãããŸãã ãã®ããããã£ãä¿æãããããnullã¯ãã¹ãŠã®éã¹ã«ã©ãŒã»ãªãã¯ã·ã§ã³ã»ãªãã¬ãŒã·ã§ã³ã®æé»çãªåºæºãšããŠæ©èœããŸãã doubleãlongããã³intã®ããŒãžã§ã³ã§ã¯ããã®åºæºã¯ä»ã®å€ãšçµåããããšãã«ãã®å€ãè¿ããã®(ã€ãŸãããªãã¯ã·ã§ã³ã®èå¥èŠçŽ )ã§ããå¿
èŠããããŸãã 0ãåºæºãšããåèšã®èšç®ãMAX_VALUEãåºæºãšããæå°æ°ã®èšç®ãªã©ãã»ãšãã©ã®äžè¬çãªãªãã¯ã·ã§ã³ã«ã¯ãããã®ããããã£ããããŸãã
åŒæ°ãšããŠæå®ãããæ€çŽ¢ããã³å€æé¢æ°ããåæ§ã«çµæãååšããªãããšã瀺ãããã«nullãè¿ãå¿ èŠããããŸã(ãã®å Žåãçµæã¯äœ¿çšãããŸãã)ã ãããããããªãã¯ã·ã§ã³ã®å Žåã¯ãããã«ãã£ãŠãã£ã«ã¿ãšããŠæ©èœãã倿ãå¯èœã«ãªããŸããèŠçŽ ãçµåãããªãå Žåã¯ãnull(ããªããã£ãç¹åã®å Žåã¯èå¥åºæº)ãè¿ãããŸãã 倿ãšãã£ã«ã¿ãªã³ã°ã®è€ååŠçãäœæããã«ã¯ãããããæ€çŽ¢ãŸãã¯ãªãã¥ãŒã¹ã®ãªãã¬ãŒã·ã§ã³ã§äœ¿çšããåã«ããã®ãnullã¯çŸåšäœãååšããªãããšãæå³ããããšããã«ãŒã«ã«åŸã£ãŠããããèªåã§æ§æããŸãã
EntryåŒæ°ãåãå
¥ããããè¿ãããããã¡ãœããã¯ãããŒãšå€ã®é¢é£ä»ããä¿æããŸãã ãããã¯ãããšãã°æå€§å€ã®ããŒãèŠã€ãããšãã«äŸ¿å©ã§ãã åçŽãªEntryåŒæ°ã¯ãnew AbstractMap.SimpleEntry(k,v)ã䜿çšããŠæå®ã§ããŸãã
äžæ¬ãªãã¬ãŒã·ã§ã³ã¯ãæå®ããã颿°ã®äœ¿çšæã«æ€åºãããäŸå€ãã¹ããŒããŠãçªç¶å®äºããããšããããŸãã ãã®ãããªäŸå€ãåŠçãããšãã¯ãä»ã®äžŠåå®è¡ãããŠãã颿°ãäŸå€ãã¹ããŒããå¯èœæ§ãããããšããæåã®äŸå€ãçºçããªãã£ãå Žåã¯ä»ã®äžŠåå®è¡ãããŠãã颿°ãäŸå€ãã¹ããŒããããšã«çæããŠãã ããã
鿬¡åœ¢åŒã«æ¯ã¹ãŠäžŠå圢åŒã®æ¹ãé«éåãããããšã¯ãäžè¬çã§ããä¿èšŒã¯ãããŸããã èšç®ã䞊ååããããã®ããŒã¹ãšãªãäœæ¥ãèšç®èªäœããé«è² è·ã§ããå Žåãå°ãããããã«å¯Ÿããç°¡åãªé¢æ°ãé¢äžãã䞊åãªãã¬ãŒã·ã§ã³ã¯ã鿬¡åœ¢åŒããå®è¡é床ãäœããªãå¯èœæ§ããããŸãã åæ§ã«ããã¹ãŠã®ããã»ããµãç¡é¢ä¿ã®ã¿ã¹ã¯ã®å®è¡ã§ããžãŒç¶æ ã§ããå Žåã¯ã䞊ååããŠãå®éã«ã¯ããã»ã©å€ãã®äžŠååŠçã¯è¡ãããªãå¯èœæ§ããããŸãã
ãã¹ãŠã®ã¿ã¹ã¯ã»ã¡ãœããã«å¯Ÿãããã¹ãŠã®åŒæ°ã¯ãnull以å€ã§ããå¿ èŠããããŸãã
ãã®ã¯ã©ã¹ã¯ãJava Collections Frameworkã®ã¡ã³ããŒã§ãã
| 修食åãšå | ã¯ã©ã¹ | 説æ |
|---|---|---|
static class |
ConcurrentHashMap.KeySetView<K,V> |
ããŒã®
SetãšããŠã®ConcurrentHashMapã®ãã¥ãŒã§ãããªãã·ã§ã³ã§ãå
±éã®å€ã«ãããããããšã«ãã£ãŠè¿œå ãæå¹åã§ããŸãã |
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>| ã³ã³ã¹ãã©ã¯ã¿ | 説æ |
|---|---|
ConcurrentHashMap() |
ããã©ã«ãã®åæããŒãã«ã»ãµã€ãº(16)ã§ãæ°ãã空ã®ããããäœæããŸãã
|
ConcurrentHashMap(int initialCapacity) |
åçã«ãµã€ãºã倿Žããã«ãæå®ãããæ°ã®èŠçŽ ãæ ŒçŽã§ããåæããŒãã«ã»ãµã€ãºã§ãæ°ãã空ã®ããããäœæããŸãã
|
ConcurrentHashMap(int initialCapacity, float loadFactor) |
æå®ãããèŠçŽ æ°(
initialCapacity)ãšåæããŒãã«å¯åºŠ(loadFactor)ã«åºã¥ãåæããŒãã«ã»ãµã€ãºã§ãæ°ãã空ã®ããããäœæããŸãã |
ConcurrentHashMap(int initialCapacity, float loadFactor, int concurrencyLevel) |
æå®ãããèŠçŽ æ°(
initialCapacity)ãããŒãã«å¯åºŠ(loadFactor)ããã³äžŠè¡æŽæ°æ°ã®ãããå€(concurrencyLevel)ã«åºã¥ãåæããŒãã«ã»ãµã€ãºã§ãæ°ãã空ã®ããããäœæããŸãã |
ConcurrentHashMap(Map<? extends K,? extends V> m) |
æå®ãããããããšåããããã³ã°ã§æ°ããããããäœæããŸãã
|
| 修食åãšå | ã¡ãœãã | 説æ |
|---|---|---|
void |
clear() |
ãã¹ãŠã®ãããã³ã°ããããããåé€ããŸãã
|
V |
compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction) |
æå®ãããããŒãšçŸåšããããããŠããå€ã«å¯Ÿãããããã³ã°ã®èšç®ã詊ã¿ãŸã(çŸåšã®ãããã³ã°ãååšããªãå Žåã¯
null)ã |
V |
computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction) |
æå®ãããããŒããŸã å€ã«é¢é£ä»ããããŠããªãå Žåãæå®ããããããã³ã°é¢æ°ã䜿çšããŠãã®å€ã®èšç®ã詊è¡ãã
nullã§ãªãå Žåã¯ããããã®ãããã«å
¥åããŸãã |
V |
computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction) |
æå®ãããããŒã®å€ãååšããå ŽåãããŒãšçŸåšããããããŠããå€ããæ°ãããããã³ã°ã®èšç®ã詊ã¿ãŸãã
|
boolean |
contains(Object value) |
äžéšã®ããŒããã®ããŒãã«å
ã®æå®ãããå€ã«ãããã³ã°ããããã©ããããã¹ãããåŸæ¥ã®ã¡ãœããã
|
boolean |
containsKey(Object key) |
æå®ããããªããžã§ã¯ããããã®ããŒãã«ã®ããŒãã©ãããå€å®ããŸãã
|
boolean |
containsValue(Object value) |
ãããã1ã€ãŸãã¯è€æ°ã®ããŒãæå®ãããå€ã«ãããã³ã°ããŠããå Žåã«
trueãè¿ããŸãã |
Enumeration<V> |
elements() |
ããŒãã«ã«ããå€ã®ãªã¹ããè¿ããŸãã
|
Set<Map.Entry<K,V>> |
entrySet() |
ãã®ãããã«å«ãŸãããããã³ã°ã®
Setãã¥ãŒãè¿ããŸãã |
boolean |
equals(Object o) |
æå®ããããªããžã§ã¯ãããã®ããããšçãããã©ãããæ¯èŒããŸãã
|
void |
forEach(BiConsumer<? super K,? super V> action) |
ãã®ãããã®ãã¹ãŠã®ãšã³ããªã®åŠçãå®äºãããã¢ã¯ã·ã§ã³ããäŸå€ãã¹ããŒããããŸã§ãåãšã³ããªã«å¯ŸããŠæå®ãããã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
|
void |
forEach(long parallelismThreshold, BiConsumer<? super K,? super V> action) |
å(key, value)ã«å¯ŸããŠæå®ãããã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
|
<U> void |
forEach(long parallelismThreshold, BiFunction<? super K,? super V,? extends U> transformer, Consumer<? super U> action) |
å(ããŒ, å€)ã®nullã§ãªãå倿ã«å¯Ÿããæå®ãããã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
|
void |
forEachEntry(long parallelismThreshold, Consumer<? super Map.Entry<K,V>> action) |
åãšã³ããªã«å¯ŸããŠæå®ãããã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
|
<U> void |
forEachEntry(long parallelismThreshold, Function<Map.Entry<K,V>,? extends U> transformer, Consumer<? super U> action) |
åãšã³ããªã®null以å€ã®å倿ã«å¯ŸããŠæå®ãããã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
|
void |
forEachKey(long parallelismThreshold, Consumer<? super K> action) |
åããŒã«å¯ŸããŠæå®ãããã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
|
<U> void |
forEachKey(long parallelismThreshold, Function<? super K,? extends U> transformer, Consumer<? super U> action) |
åããŒã®null以å€ã®å倿ã«å¯ŸããŠæå®ãããã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
|
void |
forEachValue(long parallelismThreshold, Consumer<? super V> action) |
åå€ã«å¯ŸããŠæå®ãããã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
|
<U> void |
forEachValue(long parallelismThreshold, Function<? super V,? extends U> transformer, Consumer<? super U> action) |
åå€ã®null以å€ã®å倿ã«å¯ŸããŠæå®ãããã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
|
V |
get(Object key) |
æå®ãããããŒãããããããŠããå€ãè¿ããŸãããã®ãããã«ãã®ããŒã®ãããã³ã°ãå«ãŸããŠããªãå Žåã¯
nullãè¿ããŸãã |
V |
getOrDefault(Object key, V defaultValue) |
æå®ãããããŒãããããããå€ãè¿ããŸãããã®ãããã«ãã®ããŒã®ãããã³ã°ãå«ãŸããŠããªãå Žåã¯ãæå®ãããããã©ã«ãå€ãè¿ããŸãã
|
int |
hashCode() |
ãã®
Mapã®ããã·ã¥ã»ã³ãŒãå€(ã€ãŸãããããå
ã®åããŒãšå€ã®ãã¢ã®key.hashCode() ^ value.hashCode()ã®åèš)ãè¿ããŸãã |
boolean |
isEmpty() |
ãã®ããããããŒãšå€ã®ãããã³ã°ãä¿æããªãå Žåã«trueãè¿ããŸãã
|
Enumeration<K> |
keys() |
ããŒãã«ã«ããããŒã®åæãè¿ããŸãã
|
ConcurrentHashMap.KeySetView<K,V> |
keySet() |
ãã®ãããã«å«ãŸããããŒã®
Setãã¥ãŒãè¿ããŸãã |
ConcurrentHashMap.KeySetView<K,V> |
keySet(V mappedValue) |
ãã®ãããå
ã®ããŒã®
Setãã¥ãŒãè¿ããŸãã远å (ã€ãŸããCollection.add(E)ããã³Collection.addAll(Collection))ã«ã¯ãæå®ãããå
±éã®ããããããå€ã䜿çšããŸãã |
long |
mappingCount() |
ãããã³ã°ã®æ°ãè¿ããŸãã
|
V |
merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction) |
æå®ãããããŒããŸã (nullã§ãªã)å€ãšé¢é£ä»ããããŠããªãå Žåã¯ãæå®ãããå€ã«é¢é£ä»ããŸãã
|
static <K> ConcurrentHashMap.KeySetView<K,Boolean> |
newKeySet() |
æå®ãããåãã
Boolean.TRUEãžã®ãConcurrentHashMapã«é£åããæ°ããSetãäœæããŸãã |
static <K> ConcurrentHashMap.KeySetView<K,Boolean> |
newKeySet(int initialCapacity) |
æå®ãããåãã
Boolean.TRUEãžã®ãConcurrentHashMapã«é£åããæ°ããSetãäœæããŸãã |
V |
put(K key, V value) |
ãã®ããŒãã«ã§ãæå®ãããããŒãæå®ãããå€ã«ãããããŸãã
|
void |
putAll(Map<? extends K,? extends V> m) |
æå®ããããããããã®ãããã«ãã¹ãŠã®ãããã³ã°ãã³ããŒããŸãã
|
V |
putIfAbsent(K key, V value) |
æå®ãããããŒããŸã å€ãšé¢é£ä»ããããŠããªãå Žåã¯ãæå®ãããå€ã«é¢é£ä»ããŸãã
|
<U> U |
reduce(long parallelismThreshold, BiFunction<? super K,? super V,? extends U> transformer, BiFunction<? super U,? super U,? extends U> reducer) |
æå®ããããªãã¥ãŒãµã䜿çšããŠå€ãçµåããããšã«ããããã¹ãŠã®(ããŒãå€)ãã¢ã®æå®ããã倿ã®çޝç©çµæãè¿ããŸããçµæããªãå Žåã¯nullãè¿ããŸãã
|
Map.Entry<K,V> |
reduceEntries(long parallelismThreshold, BiFunction<Map.Entry<K,V>,Map.Entry<K,V>,? extends Map.Entry<K,V>> reducer) |
æå®ããããªãã¥ãŒãµã䜿çšããŠå€ãçµåããããšã«ããããã¹ãŠã®ãšã³ããªã®çޝç©çµæãè¿ããŸããçµæããªãå Žåã¯nullãè¿ããŸãã
|
<U> U |
reduceEntries(long parallelismThreshold, Function<Map.Entry<K,V>,? extends U> transformer, BiFunction<? super U,? super U,? extends U> reducer) |
æå®ããããªãã¥ãŒãµã䜿çšããŠå€ãçµåããããšã«ããããã¹ãŠã®ãšã³ããªã®æå®ããã倿ã®çޝç©çµæãè¿ããŸããçµæããªãå Žåã¯nullãè¿ããŸãã
|
double |
reduceEntriesToDouble(long parallelismThreshold, ToDoubleFunction<Map.Entry<K,V>> transformer, double basis, DoubleBinaryOperator reducer) |
æå®ããããªãã¥ãŒãµã䜿çšããŠå€ãçµåããæå®ãããåºæºãèå¥å€ãšããŠäœ¿çšããŠããã¹ãŠã®ãšã³ããªã®æå®ããã倿ã®çޝç©çµæãè¿ããŸãã
|
int |
reduceEntriesToInt(long parallelismThreshold, ToIntFunction<Map.Entry<K,V>> transformer, int basis, IntBinaryOperator reducer) |
æå®ããããªãã¥ãŒãµã䜿çšããŠå€ãçµåããæå®ãããåºæºãèå¥å€ãšããŠäœ¿çšããŠããã¹ãŠã®ãšã³ããªã®æå®ããã倿ã®çޝç©çµæãè¿ããŸãã
|
long |
reduceEntriesToLong(long parallelismThreshold, ToLongFunction<Map.Entry<K,V>> transformer, long basis, LongBinaryOperator reducer) |
æå®ããããªãã¥ãŒãµã䜿çšããŠå€ãçµåããæå®ãããåºæºãèå¥å€ãšããŠäœ¿çšããŠããã¹ãŠã®ãšã³ããªã®æå®ããã倿ã®çޝç©çµæãè¿ããŸãã
|
K |
reduceKeys(long parallelismThreshold, BiFunction<? super K,? super K,? extends K> reducer) |
æå®ããããªãã¥ãŒãµã䜿çšããŠå€ãçµåããããšã«ããããã¹ãŠã®ããŒã®çޝç©çµæãè¿ããŸããçµæããªãå Žåã¯nullãè¿ããŸãã
|
<U> U |
reduceKeys(long parallelismThreshold, Function<? super K,? extends U> transformer, BiFunction<? super U,? super U,? extends U> reducer) |
æå®ããããªãã¥ãŒãµã䜿çšããŠå€ãçµåããããšã«ããããã¹ãŠã®ããŒã®æå®ããã倿ã®çޝç©çµæãè¿ããŸããçµæããªãå Žåã¯nullãè¿ããŸãã
|
double |
reduceKeysToDouble(long parallelismThreshold, ToDoubleFunction<? super K> transformer, double basis, DoubleBinaryOperator reducer) |
æå®ããããªãã¥ãŒãµã䜿çšããŠå€ãçµåããæå®ãããåºæºãèå¥å€ãšããŠäœ¿çšããŠããã¹ãŠã®ããŒã®æå®ããã倿ã®çޝç©çµæãè¿ããŸãã
|
int |
reduceKeysToInt(long parallelismThreshold, ToIntFunction<? super K> transformer, int basis, IntBinaryOperator reducer) |
æå®ããããªãã¥ãŒãµã䜿çšããŠå€ãçµåããæå®ãããåºæºãèå¥å€ãšããŠäœ¿çšããŠããã¹ãŠã®ããŒã®æå®ããã倿ã®çޝç©çµæãè¿ããŸãã
|
long |
reduceKeysToLong(long parallelismThreshold, ToLongFunction<? super K> transformer, long basis, LongBinaryOperator reducer) |
æå®ããããªãã¥ãŒãµã䜿çšããŠå€ãçµåããæå®ãããåºæºãèå¥å€ãšããŠäœ¿çšããŠããã¹ãŠã®ããŒã®æå®ããã倿ã®çޝç©çµæãè¿ããŸãã
|
double |
reduceToDouble(long parallelismThreshold, ToDoubleBiFunction<? super K,? super V> transformer, double basis, DoubleBinaryOperator reducer) |
æå®ããããªãã¥ãŒãµã䜿çšããŠå€ãçµåããæå®ãããåºæºãèå¥å€ãšããŠäœ¿çšããŠããã¹ãŠã®(ããŒãå€)ãã¢ã®æå®ããã倿ã®çޝç©çµæãè¿ããŸãã
|
int |
reduceToInt(long parallelismThreshold, ToIntBiFunction<? super K,? super V> transformer, int basis, IntBinaryOperator reducer) |
æå®ããããªãã¥ãŒãµã䜿çšããŠå€ãçµåããæå®ãããåºæºãèå¥å€ãšããŠäœ¿çšããŠããã¹ãŠã®(ããŒãå€)ãã¢ã®æå®ããã倿ã®çޝç©çµæãè¿ããŸãã
|
long |
reduceToLong(long parallelismThreshold, ToLongBiFunction<? super K,? super V> transformer, long basis, LongBinaryOperator reducer) |
æå®ããããªãã¥ãŒãµã䜿çšããŠå€ãçµåããæå®ãããåºæºãèå¥å€ãšããŠäœ¿çšããŠããã¹ãŠã®(ããŒãå€)ãã¢ã®æå®ããã倿ã®çޝç©çµæãè¿ããŸãã
|
V |
reduceValues(long parallelismThreshold, BiFunction<? super V,? super V,? extends V> reducer) |
æå®ããããªãã¥ãŒãµã䜿çšããŠå€ãçµåããããšã«ããããã¹ãŠã®å€ã®çޝç©çµæãè¿ããŸããçµæããªãå Žåã¯nullãè¿ããŸãã
|
<U> U |
reduceValues(long parallelismThreshold, Function<? super V,? extends U> transformer, BiFunction<? super U,? super U,? extends U> reducer) |
æå®ããããªãã¥ãŒãµã䜿çšããŠå€ãçµåããããšã«ããããã¹ãŠã®å€ã®æå®ããã倿ã®çޝç©çµæãè¿ããŸããçµæããªãå Žåã¯nullãè¿ããŸãã
|
double |
reduceValuesToDouble(long parallelismThreshold, ToDoubleFunction<? super V> transformer, double basis, DoubleBinaryOperator reducer) |
æå®ããããªãã¥ãŒãµã䜿çšããŠå€ãçµåããæå®ãããåºæºãèå¥å€ãšããŠäœ¿çšããŠããã¹ãŠã®å€ã®æå®ããã倿ã®çޝç©çµæãè¿ããŸãã
|
int |
reduceValuesToInt(long parallelismThreshold, ToIntFunction<? super V> transformer, int basis, IntBinaryOperator reducer) |
æå®ããããªãã¥ãŒãµã䜿çšããŠå€ãçµåããæå®ãããåºæºãèå¥å€ãšããŠäœ¿çšããŠããã¹ãŠã®å€ã®æå®ããã倿ã®çޝç©çµæãè¿ããŸãã
|
long |
reduceValuesToLong(long parallelismThreshold, ToLongFunction<? super V> transformer, long basis, LongBinaryOperator reducer) |
æå®ããããªãã¥ãŒãµã䜿çšããŠå€ãçµåããæå®ãããåºæºãèå¥å€ãšããŠäœ¿çšããŠããã¹ãŠã®å€ã®æå®ããã倿ã®çޝç©çµæãè¿ããŸãã
|
V |
remove(Object key) |
ããŒ(ããã³ããã«å¯Ÿå¿ããå€)ããã®ãããããåé€ããŸãã
|
boolean |
remove(Object key, Object value) |
æå®ãããå€ã«ããŒãçŸåšãããã³ã°ãããŠããå Žåã«ã®ã¿ããã®ããŒã®ãšã³ããªãåé€ããŸãã
|
V |
replace(K key, V value) |
ããŒãå€ã«çŸåšãããã³ã°ãããŠããå Žåã«ã®ã¿ããã®ããŒã®ãšã³ããªã眮æããŸãã
|
boolean |
replace(K key, V oldValue, V newValue) |
æå®ãããå€ã«ããŒãçŸåšãããã³ã°ãããŠããå Žåã«ã®ã¿ããã®ããŒã®ãšã³ããªã眮æããŸãã
|
void |
replaceAll(BiFunction<? super K,? super V,? extends V> function) |
ãã¹ãŠã®ãšã³ããªãåŠçããããããŸãã¯é¢æ°ãäŸå€ãã¹ããŒãããŸã§ãåãšã³ããªã®å€ãããã®ãšã³ããªã§æå®ããã颿°ãåŒã³åºããçµæã§çœ®æããŸãã
|
<U> U |
search(long parallelismThreshold, BiFunction<? super K,? super V,? extends U> searchFunction) |
æå®ãããæ€çŽ¢é¢æ°ãå(ããŒãå€)ã«é©çšããnullã§ãªãçµæãè¿ããŸã(ååšããªãå Žåã¯null)ã
|
<U> U |
searchEntries(long parallelismThreshold, Function<Map.Entry<K,V>,? extends U> searchFunction) |
åãšã³ããªã«æå®ãããæ€çŽ¢é¢æ°ãé©çšããnull以å€ã®çµæãè¿ããŸããçµæããªãå Žåã¯nullãè¿ããŸãã
|
<U> U |
searchKeys(long parallelismThreshold, Function<? super K,? extends U> searchFunction) |
åããŒã«æå®ãããæ€çŽ¢é¢æ°ãé©çšããnull以å€ã®çµæãè¿ããŸããçµæããªãå Žåã¯nullãè¿ããŸãã
|
<U> U |
searchValues(long parallelismThreshold, Function<? super V,? extends U> searchFunction) |
åå€ã«æå®ãããæ€çŽ¢é¢æ°ãé©çšããnull以å€ã®çµæãè¿ããŸããçµæããªãå Žåã¯nullãè¿ããŸãã
|
int |
size() |
ãã®ãããå
ã®ããŒå€ãããã³ã°ã®æ°ãè¿ããŸãã
|
String |
toString() |
ãã®ãããã®æåå衚çŸãè¿ããŸãã
|
Collection<V> |
values() |
ãã®ãããã«å«ãŸããå€ã®
Collectionãã¥ãŒãè¿ããŸãã |
clonepublic ConcurrentHashMap()
public ConcurrentHashMap(int initialCapacity)
initialCapacity - å®è£
ã¯ããã®å€æ°ã®èŠçŽ ãæ ŒçŽããããã«å
éšã®ãµã€ãºèšå®ãå®è¡ãããIllegalArgumentException - èŠçŽ ã®åæå®¹éãè² ã®å Žåpublic ConcurrentHashMap(Map<? extends K,? extends V> m)
m - ãããpublic ConcurrentHashMap(int initialCapacity,
float loadFactor)
initialCapacity)ãšåæããŒãã«å¯åºŠ(loadFactor)ã«åºã¥ãåæããŒãã«ã»ãµã€ãºã§ãæ°ãã空ã®ããããäœæããŸããinitialCapacity - åæå®¹éã è² è·ä¿æ°ãæå®ãããšãå®è£
ã¯ãã®æ°ã®èŠçŽ ãæ ŒçŽã§ããããã«å
éšã®ãµã€ãºèšå®ãè¡ãã loadFactor - åæããŒãã«ã»ãµã€ãºãèšå®ããããã®è² è·ä¿æ°(ããŒãã«å¯åºŠ)IllegalArgumentException - èŠçŽ ã®åæå®¹éãè² ã§ãããããŸãã¯è² è·ä¿æ°ãæ£ã§ãªãå Žåpublic ConcurrentHashMap(int initialCapacity,
float loadFactor,
int concurrencyLevel)
initialCapacity)ãããŒãã«å¯åºŠ(loadFactor)ããã³äžŠè¡æŽæ°æ°ã®ãããå€(concurrencyLevel)ã«åºã¥ãåæããŒãã«ã»ãµã€ãºã§ãæ°ãã空ã®ããããäœæããŸããinitialCapacity - åæå®¹éã è² è·ä¿æ°ãæå®ãããšãå®è£
ã¯ãã®æ°ã®èŠçŽ ãæ ŒçŽã§ããããã«å
éšã®ãµã€ãºèšå®ãè¡ãã loadFactor - åæããŒãã«ã»ãµã€ãºãèšå®ããããã®è² è·ä¿æ°(ããŒãã«å¯åºŠ)concurrencyLevel - 䞊è¡ããŠæŽæ°ããŠããã¹ã¬ããã®æšå®æ°ã å®è£
ã¯ãã®å€ããµã€ãºèšå®ã®ãã³ããšããŠäœ¿çšã§ããã IllegalArgumentException - åæå®¹éãè² ã§ããããè² è·ä¿æ°ãŸãã¯concurrencyLevelãæ£ã§ãªãå Žåpublic int size()
public boolean isEmpty()
public V get(Object key)
nullãè¿ããŸãã
ã€ãŸãããã®ã¡ãœããã¯ãkey.equals(k)ãšãªãããŒkããå€vãžã®ãããã³ã°ããã®ãããã«å«ãŸããŠããå Žåã¯vãè¿ãããã以å€ã®å Žåã¯nullãè¿ããŸãã (ãã®ãããªãããã³ã°ã¯1ã€ã®ã¿ååšã§ããŸãã)
getãã€ã³ã¿ãã§ãŒã¹Map<K,V>getãã¯ã©ã¹AbstractMap<K,V>key - é¢é£ä»ããããå€ãè¿ãããããŒnullNullPointerException - æå®ãããããŒãnullã§ããå Žåpublic boolean containsKey(Object key)
containsKeyãã€ã³ã¿ãã§ãŒã¹Map<K,V>containsKeyãã¯ã©ã¹AbstractMap<K,V>key - 䜿çšå¯èœãªããŒequalsã¡ãœããã«ãã£ãŠæ±ºå®ãããããã«ãæå®ããããªããžã§ã¯ãããã®ããŒãã«å
ã®ããŒã§ããå Žåã«ã®ã¿trueããã以å€ã®å Žåã¯falseNullPointerException - æå®ãããããŒãnullã§ããå Žåpublic boolean containsValue(Object value)
trueãè¿ããŸãã ããŒã: ãã®ã¡ãœããã¯ããããã®å®å
šãªãã©ããŒãµã«ãå¿
èŠãšããå ŽåããããcontainsKeyã¡ãœããã«æ¯ã¹ãŠã¯ããã«äœéã§ãã containsValueãã€ã³ã¿ãã§ãŒã¹Map<K,V>containsValueãã¯ã©ã¹AbstractMap<K,V>value - ãã®ãããã«ãããã©ãããå€å®ãããå€trueNullPointerException - æå®ãããå€ãnullã§ããå Žåpublic V put(K key, V value)
ãã®å€ã¯ãå
ã®ããŒã«çããããŒãæå®ããŠgetã¡ãœãããåŒã³åºãããšã«ãã£ãŠååŸã§ããŸãã
putãã€ã³ã¿ãã§ãŒã¹Map<K,V>putãã¯ã©ã¹AbstractMap<K,V>key - æå®ãããå€ãé¢é£ä»ããããããŒvalue - æå®ãããããŒã«é¢é£ä»ããããå€keyã«ä»¥åã«é¢é£ä»ããããŠããå€ãkeyã®ãããã³ã°ãååšããªãã£ãå Žåã¯nullNullPointerException - æå®ãããããŒãŸãã¯å€ãnullã®å Žåpublic void putAll(Map<? extends K,? extends V> m)
public V remove(Object key)
removeãã€ã³ã¿ãã§ãŒã¹Map<K,V>removeãã¯ã©ã¹AbstractMap<K,V>key - åé€ããããŒkeyã«ä»¥åã«é¢é£ä»ããããŠããå€ãkeyã®ãããã³ã°ãååšããªãã£ãå Žåã¯nullNullPointerException - æå®ãããããŒãnullã§ããå Žåpublic void clear()
public ConcurrentHashMap.KeySetView<K,V> keySet()
Setãã¥ãŒãè¿ããŸãã ã»ããã¯ããããšé£åããŠããã®ã§ããããã«å¯Ÿãã倿Žã¯ã»ããã«åæ ããããŸããã»ããã«å¯Ÿãã倿Žã¯ãããã«åæ ãããŸãã ã»ããã¯èŠçŽ ã®åé€ããµããŒãããŠããã察å¿ãããããã³ã°ããã®ãããããåé€ã§ããŸããåé€ã¯ãIterator.removeãSet.removeãremoveAllãretainAllããã³clearãªãã¬ãŒã·ã§ã³ãéããŠè¡ããŸãã addãŸãã¯addAllãªãã¬ãŒã·ã§ã³ã¯ãµããŒããããŠããŸããã
ãã¥ãŒã®ã€ãã¬ãŒã¿ããã³ã¹ããªããã¬ãŒã¿ã¯ã匱äžè²«æ§ãæã£ãŠããŸãã
ãã¥ãŒã®spliteratorã¯ãSpliterator.CONCURRENTãSpliterator.DISTINCTããã³Spliterator.NONNULLãå ±åããŸãã
public Collection<V> values()
Collectionãã¥ãŒãè¿ããŸãã ã³ã¬ã¯ã·ã§ã³ã¯ããããšé£åããŠããã®ã§ããããã«å¯Ÿãã倿Žã¯ã³ã¬ã¯ã·ã§ã³ã«åæ ããããŸãã³ã¬ã¯ã·ã§ã³ã«å¯Ÿãã倿Žã¯ãããã«åæ ãããŸãã ã³ã¬ã¯ã·ã§ã³ã¯èŠçŽ ã®åé€ããµããŒãããŠããã察å¿ãããããã³ã°ããã®ãããããåé€ã§ããŸããåé€ã¯ãIterator.removeãCollection.removeãremoveAllãretainAllããã³clearãªãã¬ãŒã·ã§ã³ãéããŠè¡ããŸãã addãŸãã¯addAllãªãã¬ãŒã·ã§ã³ã¯ãµããŒããããŠããŸããã
ãã¥ãŒã®ã€ãã¬ãŒã¿ããã³ã¹ããªããã¬ãŒã¿ã¯ã匱äžè²«æ§ãæã£ãŠããŸãã
ãã¥ãŒã®spliteratorã¯ãSpliterator.CONCURRENTããã³Spliterator.NONNULLãå ±åããŸãã
public Set<Map.Entry<K,V>> entrySet()
Setãã¥ãŒãè¿ããŸãã ã»ããã¯ããããšé£åããŠããã®ã§ããããã«å¯Ÿãã倿Žã¯ã»ããã«åæ ããããŸããã»ããã«å¯Ÿãã倿Žã¯ãããã«åæ ãããŸãã ã»ããã¯èŠçŽ ã®åé€ããµããŒãããŸããIterator.removeãSet.removeãremoveAllãretainAllãããã³clearãªãã¬ãŒã·ã§ã³ã§å¯Ÿå¿ãããããã³ã°ããããããåé€ããŸãã
ãã¥ãŒã®ã€ãã¬ãŒã¿ããã³ã¹ããªããã¬ãŒã¿ã¯ã匱äžè²«æ§ãæã£ãŠããŸãã
ãã¥ãŒã®spliteratorã¯ãSpliterator.CONCURRENTãSpliterator.DISTINCTããã³Spliterator.NONNULLãå ±åããŸãã
public int hashCode()
Mapã®ããã·ã¥ã»ã³ãŒãå€(ã€ãŸãããããå
ã®åããŒãšå€ã®ãã¢ã®key.hashCode() ^ value.hashCode()ã®åèš)ãè¿ããŸããhashCodeãã€ã³ã¿ãã§ãŒã¹Map<K,V>hashCodeãã¯ã©ã¹AbstractMap<K,V>Map.Entry.hashCode(), Object.equals(Object), Set.equals(Object)public String toString()
{}")ã§å²ãã ãªã¹ãã§æ§æãããŸãã 飿¥ãããããã³ã°ã¯ãæå", " (ã«ã³ããšç©ºçœæå)ã«ãã£ãŠåºåãããŸãã åããŒãšå€ã®ãããã³ã°ã¯ãããŒã®åŸã«çå·("=")ãç¶ãããã®æ¬¡ã«ããŒãšé¢é£ä»ããããå€ãç¶ããšãã圢ã§è¡šçŸãããŸãã toStringãã¯ã©ã¹AbstractMap<K,V>public boolean equals(Object o)
trueãè¿ããŸãã ãã®ãªãã¬ãŒã·ã§ã³ã¯ããããã®ããããããã®ã¡ãœããã®å®è¡äžã«äžŠè¡ããŠå€æŽãããå Žåã誀解ãæããããçµæãè¿ãããšããããŸãã equalsãã€ã³ã¿ãã§ãŒã¹Map<K,V>equalsãã¯ã©ã¹AbstractMap<K,V>o - ãã®ããããšçãããã©ãããæ¯èŒããããªããžã§ã¯ãtrueObject.hashCode()ãHashMappublic V putIfAbsent(K key, V value)
if (!map.containsKey(key))
return map.put(key, value);
else
return map.get(key);
ãã ããã¢ã¯ã·ã§ã³ãååçã«å®è¡ãããç¹ãç°ãªããŸããputIfAbsentãã€ã³ã¿ãã§ãŒã¹ConcurrentMap<K,V>putIfAbsentãã€ã³ã¿ãã§ãŒã¹Map<K,V>key - æå®ãããå€ãé¢é£ä»ããããããŒvalue - æå®ãããããŒã«é¢é£ä»ããããå€nullãNullPointerException - æå®ãããããŒãŸãã¯å€ãnullã®å Žåpublic boolean remove(Object key, Object value)
if (map.containsKey(key) && Objects.equals(map.get(key), value)) {
map.remove(key);
return true;
} else
return false;
ãã ããã¢ã¯ã·ã§ã³ãååçã«å®è¡ãããç¹ãç°ãªããŸããremoveãã€ã³ã¿ãã§ãŒã¹ConcurrentMap<K,V>removeãã€ã³ã¿ãã§ãŒã¹Map<K,V>key - æå®ãããå€ãé¢é£ä»ããããããŒvalue - æå®ãããããŒã«é¢é£ä»ããããŠãããšäºæ³ãããå€trueNullPointerException - æå®ãããããŒãnullã§ããå Žåpublic boolean replace(K key, V oldValue, V newValue)
if (map.containsKey(key) && Objects.equals(map.get(key), oldValue)) {
map.put(key, newValue);
return true;
} else
return false;
ãã ããã¢ã¯ã·ã§ã³ãååçã«å®è¡ãããç¹ãç°ãªããŸããreplaceãã€ã³ã¿ãã§ãŒã¹ConcurrentMap<K,V>replaceãã€ã³ã¿ãã§ãŒã¹Map<K,V>key - æå®ãããå€ãé¢é£ä»ããããããŒoldValue - æå®ãããããŒã«é¢é£ä»ããããŠãããšäºæ³ãããå€newValue - æå®ãããããŒã«é¢é£ä»ããããå€trueNullPointerException - åŒæ°ã1ã€ã§ãnullã®å Žåpublic V replace(K key, V value)
if (map.containsKey(key)) {
return map.put(key, value);
} else
return null;
ãã ããã¢ã¯ã·ã§ã³ãååçã«å®è¡ãããç¹ãç°ãªããŸããreplaceãã€ã³ã¿ãã§ãŒã¹ConcurrentMap<K,V>replaceãã€ã³ã¿ãã§ãŒã¹Map<K,V>key - æå®ãããå€ãé¢é£ä»ããããããŒvalue - æå®ãããããŒã«é¢é£ä»ããããå€nullãNullPointerException - æå®ãããããŒãŸãã¯å€ãnullã®å Žåpublic V getOrDefault(Object key, V defaultValue)
getOrDefaultãã€ã³ã¿ãã§ãŒã¹ConcurrentMap<K,V>getOrDefaultãã€ã³ã¿ãã§ãŒã¹Map<K,V>key - é¢é£ä»ããããå€ãè¿ãããããŒdefaultValue - ãã®ãããã«æå®ãããããŒã®ãããã³ã°ãå«ãŸããŠããªãå Žåã«è¿ãå€NullPointerException - æå®ãããããŒãnullã§ããå Žåpublic void forEach(BiConsumer<? super K,? super V> action)
ConcurrentMappublic void replaceAll(BiFunction<? super K,? super V,? extends V> function)
ConcurrentMapreplaceAllãã€ã³ã¿ãã§ãŒã¹ConcurrentMap<K,V>replaceAllãã€ã³ã¿ãã§ãŒã¹Map<K,V>function - åãšã³ããªã«é©çšãã颿°public V computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction)
nullã§ãªãå Žåã¯ããããã®ãããã«å
¥åããŸãã ã¡ãœããã®åŒåºãå
šäœã¯ååçã«å®è¡ãããããã颿°ã¯ããŒããšã«å€ããŠã1åããé©çšãããŸããã ä»ã®ã¹ã¬ããããã®ãããã«å¯ŸããŠè©Šè¡ããæŽæ°ãªãã¬ãŒã·ã§ã³ã®äžéšã¯èšç®ã®é²è¡äžã«ãããã¯ãããå¯èœæ§ããããããèšç®ã¯çãç°¡åã«ããŠãã ããããŸããèšç®ã§ãã®ãããã®ä»ã®ãããã³ã°ãæŽæ°ããããšããªãã§ãã ããã computeIfAbsentãã€ã³ã¿ãã§ãŒã¹ConcurrentMap<K,V>computeIfAbsentãã€ã³ã¿ãã§ãŒã¹Map<K,V>key - æå®ãããå€ãé¢é£ä»ããããããŒmappingFunction - å€ãèšç®ããããã®é¢æ°NullPointerException - æå®ãããããŒãŸãã¯mappingFunctionãnullã§ããå ŽåIllegalStateException - èšç®ã§ãä»ã®æ¹æ³ã§ã¯å®äºããªãååž°çãªæŽæ°ããã®ãããã«å¯ŸããŠè©Šè¡ãããããšãæ€åºãããå ŽåRuntimeException - (ãŸãã¯Error) mappingFunctionã§ãããªã£ãå Žå(ãã®å Žåããããã³ã°ã¯ç¢ºç«ãããŠããªãç¶æ
ã®ãŸãŸã«ãªã)public V computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
computeIfPresentãã€ã³ã¿ãã§ãŒã¹ConcurrentMap<K,V>computeIfPresentãã€ã³ã¿ãã§ãŒã¹Map<K,V>key - å€ãé¢é£ä»ããããšãã§ããããŒremappingFunction - å€ãèšç®ããããã®é¢æ°NullPointerException - æå®ãããããŒãŸãã¯remappingFunctionãnullã§ããå ŽåIllegalStateException - èšç®ã§ãä»ã®æ¹æ³ã§ã¯å®äºããªãååž°çãªæŽæ°ããã®ãããã«å¯ŸããŠè©Šè¡ãããããšãæ€åºãããå ŽåRuntimeException - (ãŸãã¯Error) remappingFunctionã§äŸå€ãŸãã¯ãšã©ãŒãçºçããå Žå(ãã®å Žåããããã³ã°ã¯å€æŽãããªã)public V compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
null)ã ã¡ãœããã®åŒåºãå
šäœã¯ååçã«å®è¡ãããŸãã ä»ã®ã¹ã¬ããããã®ãããã«å¯ŸããŠè©Šè¡ããæŽæ°ãªãã¬ãŒã·ã§ã³ã®äžéšã¯èšç®ã®é²è¡äžã«ãããã¯ãããå¯èœæ§ããããããèšç®ã¯çãç°¡åã«ããŠãã ããããŸããèšç®ã§ãã®ãããã®ä»ã®ãããã³ã°ãæŽæ°ããããšããªãã§ãã ããã computeãã€ã³ã¿ãã§ãŒã¹ConcurrentMap<K,V>computeãã€ã³ã¿ãã§ãŒã¹Map<K,V>key - æå®ãããå€ãé¢é£ä»ããããããŒremappingFunction - å€ãèšç®ããããã®é¢æ°NullPointerException - æå®ãããããŒãŸãã¯remappingFunctionãnullã§ããå ŽåIllegalStateException - èšç®ã§ãä»ã®æ¹æ³ã§ã¯å®äºããªãååž°çãªæŽæ°ããã®ãããã«å¯ŸããŠè©Šè¡ãããããšãæ€åºãããå ŽåRuntimeException - (ãŸãã¯Error) remappingFunctionã§äŸå€ãŸãã¯ãšã©ãŒãçºçããå Žå(ãã®å Žåããããã³ã°ã¯å€æŽãããªã)public V merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction)
nullã®å Žåã¯åé€ããŸãã ã¡ãœããã®åŒåºãå
šäœã¯ååçã«å®è¡ãããŸãã ä»ã®ã¹ã¬ããããã®ãããã«å¯ŸããŠè©Šè¡ããæŽæ°ãªãã¬ãŒã·ã§ã³ã®äžéšã¯èšç®ã®é²è¡äžã«ãããã¯ãããå¯èœæ§ããããããèšç®ã¯çãç°¡åã«ããŠãã ããããŸããèšç®ã§ãã®ãããã®ä»ã®ãããã³ã°ãæŽæ°ããããšããªãã§ãã ããã mergeãã€ã³ã¿ãã§ãŒã¹ConcurrentMap<K,V>mergeãã€ã³ã¿ãã§ãŒã¹Map<K,V>key - æå®ãããå€ãé¢é£ä»ããããããŒvalue - å€ãååšããªãå Žåã«äœ¿çšããå€remappingFunction - å€ãååšããå Žåã«å€ãåèšç®ããããã®é¢æ°NullPointerException - æå®ãããããŒãŸãã¯remappingFunctionãnullã§ããå ŽåRuntimeException - (ãŸãã¯Error) remappingFunctionã§äŸå€ãŸãã¯ãšã©ãŒãçºçããå Žå(ãã®å Žåããããã³ã°ã¯å€æŽãããªã)public boolean contains(Object value)
containsValue(Object)ãšæ©èœçã«ã¯åãã§ãããJava Collections Frameworkã®å°å
¥åã«ãã®ã¡ãœããããµããŒãããŠããHashtableã¯ã©ã¹ãšã®å®å
šãªäºææ§ãä¿èšŒããããã«ã®ã¿ååšããŸãã value - æ€çŽ¢ããå€equalsã¡ãœããã§æ±ºããããŠããããã«ãäžéšã®ããŒããã®ããŒãã«å
ã®valueåŒæ°ã«ãããã³ã°ãããå Žåã«ã®ã¿trueããã以å€ã®å Žåã¯falseNullPointerException - æå®ãããå€ãnullã§ããå Žåpublic Enumeration<K> keys()
keySet()public Enumeration<V> elements()
values()public long mappingCount()
size()ã®ãããã«ãã®ã¡ãœããã䜿çšããããã«ããŠãã ããã è¿ãããå€ã¯æšå®å€ã§ãããæ¿å
¥ãåé€ãåæã«è¡ãããå Žåãå®éã®ã«ãŠã³ãã¯ç°ãªãå¯èœæ§ããããŸãã public static <K> ConcurrentHashMap.KeySetView<K,Boolean> newKeySet()
Boolean.TRUEãžã®ãConcurrentHashMapã«é£åããæ°ããSetãäœæããŸããK - è¿ãããã»ããã®èŠçŽ åpublic static <K> ConcurrentHashMap.KeySetView<K,Boolean> newKeySet(int initialCapacity)
Boolean.TRUEãžã®ãConcurrentHashMapã«é£åããæ°ããSetãäœæããŸããK - è¿ãããã»ããã®èŠçŽ åinitialCapacity - å®è£
ã¯ããã®å€æ°ã®èŠçŽ ãæ ŒçŽããããã«å
éšã®ãµã€ãºèšå®ãå®è¡ãããIllegalArgumentException - èŠçŽ ã®åæå®¹éãè² ã®å Žåpublic ConcurrentHashMap.KeySetView<K,V> keySet(V mappedValue)
Setãã¥ãŒãè¿ããŸãã远å (ã€ãŸããCollection.add(E)ããã³Collection.addAll(Collection))ã«ã¯ãæå®ãããå
±éã®ããããããå€ã䜿çšããŸãã ããã¯ãåœç¶ãªããããã®ãã¥ãŒããã®ãã¹ãŠã®è¿œå ã§åãå€ã䜿çšããããšã蚱容ãããå Žåã«ã®ã¿é©ããŠããŸãã mappedValue - 远å ã«äœ¿çšããããããããå€NullPointerException - mappedValueãnullã§ããå Žåpublic void forEach(long parallelismThreshold,
BiConsumer<? super K,? super V> action)
parallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°action - ã¢ã¯ã·ã§ã³public <U> void forEach(long parallelismThreshold,
BiFunction<? super K,? super V,? extends U> transformer,
Consumer<? super U> action)
U - ãã©ã³ã¹ãã©ãŒãã®æ»ãå€ã®åparallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°transformer - èŠçŽ ã®å€æãè¿ã颿°ã倿ããªãå Žåã¯null(ãã®å Žåãã¢ã¯ã·ã§ã³ã¯é©çšãããªã)action - ã¢ã¯ã·ã§ã³public <U> U search(long parallelismThreshold,
BiFunction<? super K,? super V,? extends U> searchFunction)
U - æ€çޢ颿°ã®æ»ãå€ã®åparallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°searchFunction - æåããå Žåã¯null以å€ã®çµæãè¿ãããã以å€ã®å Žåã¯nullãè¿ã颿°ãpublic <U> U reduce(long parallelismThreshold,
BiFunction<? super K,? super V,? extends U> transformer,
BiFunction<? super U,? super U,? extends U> reducer)
U - ãã©ã³ã¹ãã©ãŒãã®æ»ãå€ã®åparallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°transformer - èŠçŽ ã®å€æãè¿ã颿°ã倿ããªãå Žåã¯null(ãã®å Žåãå€ã¯çµåãããªã)reducer - 亀æå¯èœæ§ãšçµåæ§ãæã€çµå颿°public double reduceToDouble(long parallelismThreshold,
ToDoubleBiFunction<? super K,? super V> transformer,
double basis,
DoubleBinaryOperator reducer)
parallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°transformer - èŠçŽ ã®å€æãè¿ã颿°basis - ãªãã¯ã·ã§ã³ã®èå¥(åæã®ããã©ã«ãå€)reducer - 亀æå¯èœæ§ãšçµåæ§ãæã€çµå颿°public long reduceToLong(long parallelismThreshold,
ToLongBiFunction<? super K,? super V> transformer,
long basis,
LongBinaryOperator reducer)
parallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°transformer - èŠçŽ ã®å€æãè¿ã颿°basis - ãªãã¯ã·ã§ã³ã®èå¥(åæã®ããã©ã«ãå€)reducer - 亀æå¯èœæ§ãšçµåæ§ãæã€çµå颿°public int reduceToInt(long parallelismThreshold,
ToIntBiFunction<? super K,? super V> transformer,
int basis,
IntBinaryOperator reducer)
parallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°transformer - èŠçŽ ã®å€æãè¿ã颿°basis - ãªãã¯ã·ã§ã³ã®èå¥(åæã®ããã©ã«ãå€)reducer - 亀æå¯èœæ§ãšçµåæ§ãæã€çµå颿°public void forEachKey(long parallelismThreshold,
Consumer<? super K> action)
parallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°action - ã¢ã¯ã·ã§ã³public <U> void forEachKey(long parallelismThreshold,
Function<? super K,? extends U> transformer,
Consumer<? super U> action)
U - ãã©ã³ã¹ãã©ãŒãã®æ»ãå€ã®åparallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°transformer - èŠçŽ ã®å€æãè¿ã颿°ã倿ããªãå Žåã¯null(ãã®å Žåãã¢ã¯ã·ã§ã³ã¯é©çšãããªã)action - ã¢ã¯ã·ã§ã³public <U> U searchKeys(long parallelismThreshold,
Function<? super K,? extends U> searchFunction)
U - æ€çޢ颿°ã®æ»ãå€ã®åparallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°searchFunction - æåããå Žåã¯null以å€ã®çµæãè¿ãããã以å€ã®å Žåã¯nullãè¿ã颿°ãpublic K reduceKeys(long parallelismThreshold, BiFunction<? super K,? super K,? extends K> reducer)
parallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°reducer - 亀æå¯èœæ§ãšçµåæ§ãæã€çµå颿°public <U> U reduceKeys(long parallelismThreshold,
Function<? super K,? extends U> transformer,
BiFunction<? super U,? super U,? extends U> reducer)
U - ãã©ã³ã¹ãã©ãŒãã®æ»ãå€ã®åparallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°transformer - èŠçŽ ã®å€æãè¿ã颿°ã倿ããªãå Žåã¯null(ãã®å Žåãå€ã¯çµåãããªã)reducer - 亀æå¯èœæ§ãšçµåæ§ãæã€çµå颿°public double reduceKeysToDouble(long parallelismThreshold,
ToDoubleFunction<? super K> transformer,
double basis,
DoubleBinaryOperator reducer)
parallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°transformer - èŠçŽ ã®å€æãè¿ã颿°basis - ãªãã¯ã·ã§ã³ã®èå¥(åæã®ããã©ã«ãå€)reducer - 亀æå¯èœæ§ãšçµåæ§ãæã€çµå颿°public long reduceKeysToLong(long parallelismThreshold,
ToLongFunction<? super K> transformer,
long basis,
LongBinaryOperator reducer)
parallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°transformer - èŠçŽ ã®å€æãè¿ã颿°basis - ãªãã¯ã·ã§ã³ã®èå¥(åæã®ããã©ã«ãå€)reducer - 亀æå¯èœæ§ãšçµåæ§ãæã€çµå颿°public int reduceKeysToInt(long parallelismThreshold,
ToIntFunction<? super K> transformer,
int basis,
IntBinaryOperator reducer)
parallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°transformer - èŠçŽ ã®å€æãè¿ã颿°basis - ãªãã¯ã·ã§ã³ã®èå¥(åæã®ããã©ã«ãå€)reducer - 亀æå¯èœæ§ãšçµåæ§ãæã€çµå颿°public void forEachValue(long parallelismThreshold,
Consumer<? super V> action)
parallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°action - ã¢ã¯ã·ã§ã³public <U> void forEachValue(long parallelismThreshold,
Function<? super V,? extends U> transformer,
Consumer<? super U> action)
U - ãã©ã³ã¹ãã©ãŒãã®æ»ãå€ã®åparallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°transformer - èŠçŽ ã®å€æãè¿ã颿°ã倿ããªãå Žåã¯null(ãã®å Žåãã¢ã¯ã·ã§ã³ã¯é©çšãããªã)action - ã¢ã¯ã·ã§ã³public <U> U searchValues(long parallelismThreshold,
Function<? super V,? extends U> searchFunction)
U - æ€çޢ颿°ã®æ»ãå€ã®åparallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°searchFunction - æåããå Žåã¯null以å€ã®çµæãè¿ãããã以å€ã®å Žåã¯nullãè¿ã颿°ãpublic V reduceValues(long parallelismThreshold, BiFunction<? super V,? super V,? extends V> reducer)
parallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°reducer - 亀æå¯èœæ§ãšçµåæ§ãæã€çµå颿°public <U> U reduceValues(long parallelismThreshold,
Function<? super V,? extends U> transformer,
BiFunction<? super U,? super U,? extends U> reducer)
U - ãã©ã³ã¹ãã©ãŒãã®æ»ãå€ã®åparallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°transformer - èŠçŽ ã®å€æãè¿ã颿°ã倿ããªãå Žåã¯null(ãã®å Žåãå€ã¯çµåãããªã)reducer - 亀æå¯èœæ§ãšçµåæ§ãæã€çµå颿°public double reduceValuesToDouble(long parallelismThreshold,
ToDoubleFunction<? super V> transformer,
double basis,
DoubleBinaryOperator reducer)
parallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°transformer - èŠçŽ ã®å€æãè¿ã颿°basis - ãªãã¯ã·ã§ã³ã®èå¥(åæã®ããã©ã«ãå€)reducer - 亀æå¯èœæ§ãšçµåæ§ãæã€çµå颿°public long reduceValuesToLong(long parallelismThreshold,
ToLongFunction<? super V> transformer,
long basis,
LongBinaryOperator reducer)
parallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°transformer - èŠçŽ ã®å€æãè¿ã颿°basis - ãªãã¯ã·ã§ã³ã®èå¥(åæã®ããã©ã«ãå€)reducer - 亀æå¯èœæ§ãšçµåæ§ãæã€çµå颿°public int reduceValuesToInt(long parallelismThreshold,
ToIntFunction<? super V> transformer,
int basis,
IntBinaryOperator reducer)
parallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°transformer - èŠçŽ ã®å€æãè¿ã颿°basis - ãªãã¯ã·ã§ã³ã®èå¥(åæã®ããã©ã«ãå€)reducer - 亀æå¯èœæ§ãšçµåæ§ãæã€çµå颿°public void forEachEntry(long parallelismThreshold,
Consumer<? super Map.Entry<K,V>> action)
parallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°action - ã¢ã¯ã·ã§ã³public <U> void forEachEntry(long parallelismThreshold,
Function<Map.Entry<K,V>,? extends U> transformer,
Consumer<? super U> action)
U - ãã©ã³ã¹ãã©ãŒãã®æ»ãå€ã®åparallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°transformer - èŠçŽ ã®å€æãè¿ã颿°ã倿ããªãå Žåã¯null(ãã®å Žåãã¢ã¯ã·ã§ã³ã¯é©çšãããªã)action - ã¢ã¯ã·ã§ã³public <U> U searchEntries(long parallelismThreshold,
Function<Map.Entry<K,V>,? extends U> searchFunction)
U - æ€çޢ颿°ã®æ»ãå€ã®åparallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°searchFunction - æåããå Žåã¯null以å€ã®çµæãè¿ãããã以å€ã®å Žåã¯nullãè¿ã颿°ãpublic Map.Entry<K,V> reduceEntries(long parallelismThreshold, BiFunction<Map.Entry<K,V>,Map.Entry<K,V>,? extends Map.Entry<K,V>> reducer)
parallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°reducer - 亀æå¯èœæ§ãšçµåæ§ãæã€çµå颿°public <U> U reduceEntries(long parallelismThreshold,
Function<Map.Entry<K,V>,? extends U> transformer,
BiFunction<? super U,? super U,? extends U> reducer)
U - ãã©ã³ã¹ãã©ãŒãã®æ»ãå€ã®åparallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°transformer - èŠçŽ ã®å€æãè¿ã颿°ã倿ããªãå Žåã¯null(ãã®å Žåãå€ã¯çµåãããªã)reducer - 亀æå¯èœæ§ãšçµåæ§ãæã€çµå颿°public double reduceEntriesToDouble(long parallelismThreshold,
ToDoubleFunction<Map.Entry<K,V>> transformer,
double basis,
DoubleBinaryOperator reducer)
parallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°transformer - èŠçŽ ã®å€æãè¿ã颿°basis - ãªãã¯ã·ã§ã³ã®èå¥(åæã®ããã©ã«ãå€)reducer - 亀æå¯èœæ§ãšçµåæ§ãæã€çµå颿°public long reduceEntriesToLong(long parallelismThreshold,
ToLongFunction<Map.Entry<K,V>> transformer,
long basis,
LongBinaryOperator reducer)
parallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°transformer - èŠçŽ ã®å€æãè¿ã颿°basis - ãªãã¯ã·ã§ã³ã®èå¥(åæã®ããã©ã«ãå€)reducer - 亀æå¯èœæ§ãšçµåæ§ãæã€çµå颿°public int reduceEntriesToInt(long parallelismThreshold,
ToIntFunction<Map.Entry<K,V>> transformer,
int basis,
IntBinaryOperator reducer)
parallelismThreshold - ãã®ãªãã¬ãŒã·ã§ã³ã䞊åçã«å®è¡ããããã«å¿
èŠãª(æšå®ã®)èŠçŽ æ°transformer - èŠçŽ ã®å€æãè¿ã颿°basis - ãªãã¯ã·ã§ã³ã®èå¥(åæã®ããã©ã«ãå€)reducer - 亀æå¯èœæ§ãšçµåæ§ãæã€çµå颿° ãã°ãŸãã¯æ©èœãéä¿¡
詳现ãªAPIãªãã¡ã¬ã³ã¹ããã³éçºè
ããã¥ã¡ã³ãã«ã€ããŠã¯ãJava SEã®ããã¥ã¡ã³ããåç
§ããŠãã ããã ãã®ããã¥ã¡ã³ãã«ã¯ãæŠå¿µçãªæŠèŠãçšèªã®å®çŸ©ãåé¿æ¹æ³ãæå¹ãªã³ãŒãäŸãªã©ã®ãéçºè
ã察象ã«ãããã詳现ãªèª¬æãå«ãŸããŠããŸãã
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyãåç
§ããŠãã ããã