K - ãã®ãããã§ä¿æãããããŒã®åV - ããããããå€ã®åpublic interface Map<K,V>
ãã®ã€ã³ã¿ãã§ãŒã¹ã¯ãã€ã³ã¿ãã§ãŒã¹ãšãããããããå®å šã«æœè±¡ã¯ã©ã¹ã§ãã£ãDictionaryã¯ã©ã¹ã«ä»£ãããã®ã§ãã
Mapã€ã³ã¿ãã§ãŒã¹ãæäŸãã3ã€ã®ã³ã¬ã¯ã·ã§ã³ã»ãã¥ãŒã«ããããããã®å 容ããããŒã®ã»ãããå€ã®ã³ã¬ã¯ã·ã§ã³ããããã¯ããŒãšå€ã®ãããã³ã°ã®ã»ãããšããŠè¡šç€ºã§ããããã«ãªããŸãã ãããã®é åºã¯ããããã®ã³ã¬ã¯ã·ã§ã³ã»ãã¥ãŒã®ã€ãã¬ãŒã¿ãèŠçŽ ãè¿ããšãã®é åºãšããŠå®çŸ©ãããŸãã TreeMapã¯ã©ã¹ãªã©äžéšã®ãããã®å®è£ ã§ã¯ãé åºã«ã€ããŠä¿èšŒããŸãããHashMapã¯ã©ã¹ãªã©ã®å®è£ ã§ã¯é åºã¯ä¿èšŒãããŸããã
ããŒã:å¯å€ãªããžã§ã¯ãããããã»ããŒãšããŠäœ¿çšããå Žåã¯çްå¿ã®æ³šæãå¿ èŠã§ãã ãªããžã§ã¯ãããããå ã®ããŒã§ãããšãã«ãequalsã®æ¯èŒã«åœ±é¿ãäžããæ¹æ³ã§ãªããžã§ã¯ãã®å€ã倿Žãããå Žåããããã®åäœã¯ä¿èšŒãããŸããã ãã®çŠæ¢äºé ã®ç¹æ®ãªäŸãšããŠãããããããèªèº«ãããŒãšããŠæã€ããšãã§ããªãããšãæããããŸãã ããããããèªèº«ãå€ãšããŠæã€ããšã¯èš±å¯ãããŸããããã®å Žåã¯çްå¿ã®æ³šæãå¿ èŠã§ãããã®ãããªãããã§ã¯equalsã¡ãœããããã³hashCodeã¡ãœããã®åäœã¯ä¿èšŒãããŸããã
æ±çšãããã®å®è£ ã¯ã©ã¹ã¯ãã¹ãŠã次ã®2ã€ã®æšæºçãªã³ã³ã¹ãã©ã¯ã¿ãæäŸããããã«ããŠãã ããã空ã®ããããäœæããvoid (åŒæ°ãªã)ã³ã³ã¹ãã©ã¯ã¿ãšãMapåã®åŒæ°ã1ã€æã¡ããã®åŒæ°ãšåãããŒãšå€ã®ãããã³ã°ã§æ°ããããããäœæããã³ã³ã¹ãã©ã¯ã¿ã§ãã ãã®çµæããŠãŒã¶ãŒã¯ãåŸè ã®ã³ã³ã¹ãã©ã¯ã¿ã䜿çšããŠä»»æã®ããããã³ããŒããããšã«ãããå¿ èŠãªã¯ã©ã¹ãšç䟡ãªããããäœæã§ããŸãã ããã¯æšå¥šãããæ¹æ³ã§ã¯ãããŸããã(ã€ã³ã¿ãã§ãŒã¹ã¯ã³ã³ã¹ãã©ã¯ã¿ãæã€ããšãã§ããªããã)ãJDKã§ã®æ±çšãããã®å®è£ ã¯ãã¹ãŠããã«åŸã£ãŠããŸãã
ãã®ã€ã³ã¿ãã§ãŒã¹ã«å«ãŸããŠãããç Žå£çãªãã¡ãœãã(åŠç察象ã®ãããã倿Žããã¡ãœãã)ã¯ããã®ãããããã®ãªãã¬ãŒã·ã§ã³ããµããŒãããŠããªãå Žåã«UnsupportedOperationExceptionãã¹ããŒããããã«æå®ãããŠããŸãã ãã®ãšããåŒåºãããããã«åœ±é¿ãåãŒããªãå Žåããããã®ã¡ãœããã¯UnsupportedOperationExceptionãã¹ããŒããããšããããŸãããå¿
é ã§ã¯ãããŸããã ããšãã°ããããã³ã°ããéãåãããããããã空ã®å Žåã«ã倿Žäžå¯èœãªãããã§putAll(Map)ã¡ãœãããåŒã³åºããšãäŸå€ãã¹ããŒããããšããããŸãããå¿
é ã§ã¯ãããŸããã
ãããã®å®è£ ã«ã¯ãæ ŒçŽã§ããããŒãšå€ã«å¶éããããã®ããããŸãã ããšãã°ãnullããŒãšnullå€ãçŠæ¢ããå®è£ ããnullããŒã®åã«å¶éãããå®è£ ããããŸãã äžé©åœãªããŒãŸãã¯å€ãæ¿å ¥ããããšãããšãéåžžNullPointerExceptionãŸãã¯ClassCastExceptionã®ãããªéãã§ãã¯äŸå€ãã¹ããŒãããŸãã äžé©åœãªããŒãå€ããããã©ãããç §äŒããããšãããšãäŸå€ãã¹ããŒãããå Žåãããã falseãè¿ãå ŽåããããŸããåè ã®åäœãå®è¡ããå®è£ ãããã°ãåŸè ã®åäœãå®è¡ããå®è£ ããããŸãã ããå°ãäžè¬çã«èšããšãäžé©åœãªããŒãŸãã¯å€ãåŠçããããšããŠããããžã®æ¿å ¥ãå®äºããªãå ŽåãäŸå€ãã¹ããŒããããæåãããã¯å®è£ ã®ä»»æã§ãã ãã®ã€ã³ã¿ãã§ãŒã¹ã®ä»æ§ã§ã¯ãããããäŸå€ã¯ãä»»æããšèšèŒãããŠããŸãã
Collections Frameworkã€ã³ã¿ãã§ãŒã¹å
ã®å€æ°ã®ã¡ãœããã¯ãequalsã¡ãœãããšã®é¢é£ã§å®çŸ©ãããŸãã ããšãã°ãcontainsKey(Object key)ã¡ãœããã®ä»æ§ã¯ãããã®ãããã«(key==null ? k==null : key.equals(k))ãæºããããŒkãå«ãŸããå Žåã«ã®ã¿ãtrueãè¿ãããšãããã®ã§ãã ãã®ä»æ§ã¯ããnull以å€ã®åŒæ°keyã䜿çšããŠMap.containsKeyãåŒã³åºããšãããŒkã§key.equals(k)ãåŒã³åºãããããšçè§£ãã¹ãã§ã¯ãããŸããã å®è£
ã¯ãæåã«2ã€ã®ããŒã®ããã·ã¥ã»ã³ãŒããæ¯èŒãããªã©ãequalsåŒåºããåé¿ããããã®æé©åãèªç±ã«å®è£
ã§ããŸãã (Object.hashCode()仿§ã§ã¯ãç䟡ã§ã¯ãªãããã·ã¥ã»ã³ãŒããä¿æãã2ã€ã®ãªããžã§ã¯ãã¯ç䟡ã§ã¯ãªãããšãä¿èšŒãããŸãã) ããå°ãäžè¬çã«èšããšãããŸããŸãªCollections Frameworkã€ã³ã¿ãã§ãŒã¹ã®å®è£
ã§ãå®è£
è
ãé©åãšå€æãããªããåºæ¬ãšãªãObjectã¡ãœããã®æå®ãããåäœãèªç±ã«å©çšã§ããŸãã
ãããã®ååž°çãã©ããŒã¹ãå®è¡ããäžéšã®ãããæäœã¯ãããããèªèº«ãçŽæ¥ãŸãã¯éæ¥ã«å«ãã§ããèªå·±åç
§ã€ã³ã¹ã¿ã³ã¹ã«å¯ŸããäŸå€ã§å€±æããå ŽåããããŸãã ããã«ã¯ãclone()ãequals()ãhashCode()ãããã³toString()ã¡ãœãããå«ãŸããŸãã å®è£
ã§ã¯ãªãã·ã§ã³ã§èªå·±åç
§ã·ããªãªãåŠçã§ããŸãããææ°ã®å®è£
ã§ã¯è¡ãããŠããŸããã
ãã®ã€ã³ã¿ãã§ãŒã¹ã¯ãJava Collections Frameworkã®ã¡ã³ããŒã§ãã
| 修食åãšå | ã€ã³ã¿ãã§ãŒã¹ | 説æ |
|---|---|---|
static interface |
Map.Entry<K,V> |
ãããã®ãšã³ããª(ããŒãšå€ã®ãã¢)ã§ãã
|
| 修食åãšå | ã¡ãœãã | 説æ |
|---|---|---|
void |
clear() |
ããããããããã³ã°ããã¹ãŠåé€ããŸã(ãªãã·ã§ã³ã®æäœ)ã
|
default V |
compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction) |
æå®ãããããŒãšçŸåšããããããŠããå€ã«å¯Ÿãããããã³ã°ã®èšç®ã詊ã¿ãŸã(çŸåšã®ãããã³ã°ãååšããªãå Žåã¯
null)ã |
default V |
computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction) |
æå®ãããããŒããŸã å€ã«é¢é£ä»ããããŠããªã(ãŸãã¯
nullã«ããããããŠãã)å Žåãæå®ããããããã³ã°é¢æ°ã䜿çšããŠãã®å€ã®èšç®ã詊è¡ããnullã§ãªãå Žåã¯ããããã®ãããã«å
¥åããŸãã |
default V |
computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction) |
æå®ãããããŒã®å€ãååšããŠããŠnull以å€ã®å ŽåãããŒãšçŸåšããããããŠããå€ããæ°ãããããã³ã°ã®èšç®ã詊ã¿ãŸãã
|
boolean |
containsKey(Object key) |
æå®ã®ããŒã®ãããã³ã°ããã®ãããã«å«ãŸããŠããå Žåã«trueãè¿ããŸãã
|
boolean |
containsValue(Object value) |
ãããã1ã€ãŸãã¯è€æ°ã®ããŒãæå®ãããå€ã«ãããã³ã°ããŠããå Žåã«trueãè¿ããŸãã
|
Set<Map.Entry<K,V>> |
entrySet() |
ãã®ãããã«å«ãŸãããããã³ã°ã®
Setãã¥ãŒãè¿ããŸãã |
boolean |
equals(Object o) |
æå®ããããªããžã§ã¯ãããã®ããããšçãããã©ãããæ¯èŒããŸãã
|
default void |
forEach(BiConsumer<? super K,? super V> action) |
ãã®ãããã®ãã¹ãŠã®ãšã³ããªã®åŠçãå®äºãããã¢ã¯ã·ã§ã³ããäŸå€ãã¹ããŒããããŸã§ãåãšã³ããªã«å¯ŸããŠæå®ãããã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
|
V |
get(Object key) |
æå®ãããããŒãããããããŠããå€ãè¿ããŸãããã®ãããã«ãã®ããŒã®ãããã³ã°ãå«ãŸããŠããªãå Žåã¯
nullãè¿ããŸãã |
default V |
getOrDefault(Object key, V defaultValue) |
æå®ãããããŒãããããããŠããå€ãè¿ããŸãããã®ãããã«ãã®ããŒã®ãããã³ã°ãå«ãŸããŠããªãå Žåã¯
defaultValueãè¿ããŸãã |
int |
hashCode() |
ãããã®ããã·ã¥ã»ã³ãŒãå€ãè¿ããŸãã
|
boolean |
isEmpty() |
ãã®ããããããŒãšå€ã®ãããã³ã°ãä¿æããªãå Žåã«trueãè¿ããŸãã
|
Set<K> |
keySet() |
ãã®ãããã«å«ãŸããããŒã®
Setãã¥ãŒãè¿ããŸãã |
default V |
merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction) |
æå®ãããããŒããŸã å€ãšé¢é£ä»ããããŠããªããnullãšé¢é£ä»ããããŠããå Žåãæå®ãããnull以å€ã®å€ã«é¢é£ä»ããŸãã
|
V |
put(K key, V value) |
æå®ãããå€ãšæå®ãããããŒããã®ãããã§é¢é£ä»ããŸã(ãªãã·ã§ã³ã®æäœ)ã
|
void |
putAll(Map<? extends K,? extends V> m) |
æå®ããããããã®ãã¹ãŠã®ãããã³ã°ããã®ãããã«ã³ããŒããŸã(ãªãã·ã§ã³ã®æäœ)ã
|
default V |
putIfAbsent(K key, V value) |
æå®ãããããŒããŸã å€ã«é¢é£ä»ããããŠããªã(ãŸãã¯ã
nullã«ããããããŠãã)å Žåã¯ããããæå®ãããå€ã«é¢é£ä»ããŠnullãè¿ããŸãããã以å€ã®å Žåã¯ãçŸåšã®å€ãè¿ããŸãã |
V |
remove(Object key) |
ãã®ãããããããŒã®ãããã³ã°(ããå Žå)ãåé€ããŸã(ãªãã·ã§ã³ã®æäœ)ã
|
default boolean |
remove(Object key, Object value) |
æå®ãããå€ã«æå®ãããããŒãçŸåšãããã³ã°ãããŠããå Žåã«ã®ã¿ããã®ããŒã®ãšã³ããªãåé€ããŸãã
|
default V |
replace(K key, V value) |
æå®ãããããŒããªãããã®å€ã«çŸåšãããã³ã°ãããŠããå Žåã«ã®ã¿ããã®ããŒã®ãšã³ããªã眮æããŸãã
|
default boolean |
replace(K key, V oldValue, V newValue) |
æå®ãããããŒãæå®ãããå€ã«çŸåšãããã³ã°ãããŠããå Žåã«ã®ã¿ããã®ããŒã®ãšã³ããªã眮æããŸãã
|
default void |
replaceAll(BiFunction<? super K,? super V,? extends V> function) |
ãã¹ãŠã®ãšã³ããªãåŠçããããããŸãã¯é¢æ°ãäŸå€ãã¹ããŒãããŸã§ãåãšã³ããªã®å€ãããã®ãšã³ããªã§æå®ããã颿°ãåŒã³åºããçµæã§çœ®æããŸãã
|
int |
size() |
ãã®ãããå
ã®ããŒå€ãããã³ã°ã®æ°ãè¿ããŸãã
|
Collection<V> |
values() |
ãã®ãããã«å«ãŸããå€ã®
Collectionãã¥ãŒãè¿ããŸãã |
int size()
boolean isEmpty()
boolean containsKey(Object key)
key - ãã®ãããå
ã«ãããã©ãããå€å®ãããããŒClassCastException - ãã®ããŒããã®ãããã«é©ããªãåã®å Žå(ãªãã·ã§ã³)NullPointerException - æå®ãããããŒãnullã§ããããã®ããããnullããŒãèš±å¯ããªãå Žå(ãªãã·ã§ã³)boolean containsValue(Object value)
value - ãã®ãããã«ãããã©ãããå€å®ãããå€ClassCastException - å€ããããã«é©ããªãåã®å Žå(ãªãã·ã§ã³)NullPointerException - æå®ãããå€ãnullã§ããããã®ããããnullå€ãèš±å¯ããªãå Žå(ãªãã·ã§ã³)V get(Object key)
nullãè¿ããŸãã
ã€ãŸãããã®ã¡ãœããã¯ã(key==null ? k==null : key.equals(k))ãšãªãããŒkããå€vãžã®ãããã³ã°ããã®ãããã«å«ãŸããŠããå Žåã¯vãè¿ãããã以å€ã®å Žåã¯nullãè¿ããŸãã (ãã®ãããªãããã³ã°ã¯1ã€ã®ã¿ååšã§ããŸãã)
ãã®ããããnullå€ãèš±å¯ããå Žåãæ»ãå€ã®nullã¯ãããããããŒã®ãããã³ã°ãä¿æããŠããªãããšã瀺ããšã¯ããããŸãããã€ãŸããããããæç€ºçã«ããŒãnullã«ãããããããšããããŸãã containsKeyãªãã¬ãŒã·ã§ã³ã䜿ããšããããã®2ã€ã®å Žåãåºå¥ã§ããŸãã
key - é¢é£ä»ããããå€ãè¿ãããããŒnullClassCastException - ãã®ããŒããã®ãããã«é©ããªãåã®å Žå(ãªãã·ã§ã³)NullPointerException - æå®ãããããŒãnullã§ããããã®ããããnullããŒãèš±å¯ããªãå Žå(ãªãã·ã§ã³)V put(K key, V value)
m.containsKey(k)ãtrueãè¿ãå Žåã«ãããããããmã¯ããŒkã®ãããã³ã°ãå«ããšèšããŸãã key - æå®ãããå€ãé¢é£ä»ããããããŒvalue - æå®ãããããŒã«é¢é£ä»ããããå€UnsupportedOperationException - putãªãã¬ãŒã·ã§ã³ããã®ãããã§ãµããŒããããªãå ŽåClassCastException - æå®ãããããŒãŸãã¯å€ã®ã¯ã©ã¹ãåå ã§ããã®ãããã«ããããæ ŒçŽã§ããªãå ŽåNullPointerException - æå®ãããããŒãŸãã¯å€ãnullã§ããããã®ããããnullã®ããŒãŸãã¯å€ãèš±å¯ããªãå ŽåIllegalArgumentException - æå®ãããããŒãŸãã¯å€ã®ããããããã£ãåå ã§ããã®ãããã«ããããæ ŒçŽã§ããªãå ŽåV remove(Object key)
(key==null ? k==null : key.equals(k))ãšãªãããŒkããå€vãžã®ãããã³ã°ããã®ãããã«å«ãŸããå Žåããã®ãããã³ã°ã¯åé€ãããŸãã (ãããã¯ãã®ãããªãããã³ã°ã1ã€ã ãå«ããããšãã§ããŸãã)
ãã®ãããã以åã«ãã®ããŒãé¢é£ä»ããŠããå€ãè¿ããŸããããŒã«å¯Ÿãããããã³ã°ããããã«ãªãã£ãå Žåã¯nullãè¿ããŸãã
ãã®ããããnullå€ãèš±å¯ããå Žåãæ»ãå€ã®nullã¯ãããããããŒã®ãããã³ã°ãä¿æããŠããªãã£ãããšã瀺ããšã¯ããããŸãããã€ãŸããããããæç€ºçã«ããŒãnullã«ãããããŠããå¯èœæ§ããããŸãã
åŒåºããæ»ããšããããã¯æå®ãããããŒã®ãããã³ã°ãå«ãŸãªããªããŸãã
key - ãããã³ã°ããããããåé€ãããããŒUnsupportedOperationException - removeãªãã¬ãŒã·ã§ã³ããã®ãããã§ãµããŒããããªãå ŽåClassCastException - ãã®ããŒããã®ãããã«é©ããªãåã®å Žå(ãªãã·ã§ã³)NullPointerException - æå®ãããããŒãnullã§ããããã®ããããnullããŒãèš±å¯ããªãå Žå(ãªãã·ã§ã³)void putAll(Map<? extends K,? extends V> m)
put(k, v)ã1ååŒã³åºããå Žåãšåãã§ãã ãªãã¬ãŒã·ã§ã³ã®é²è¡äžã«ãæå®ããããããã倿Žãããå Žåã®ããã®ãªãã¬ãŒã·ã§ã³ã®åäœã¯å®çŸ©ãããŠããŸããã m - ãã®ãããã«æ ŒçŽããããããã³ã°UnsupportedOperationException - putAllãªãã¬ãŒã·ã§ã³ããã®ãããã§ãµããŒããããªãå ŽåClassCastException - æå®ããããããå
ã®ããŒãŸãã¯å€ã®ã¯ã©ã¹ãåå ã§ããã®ãããã«ããããæ ŒçŽã§ããªãå ŽåNullPointerException - æå®ãããããããnullã§ããå ŽåããŸãã¯ãã®ããããnullã®ããŒãŸãã¯å€ãèš±å¯ãããæå®ããããããã«nullã®ããŒãŸãã¯å€ãå«ãŸããŠããå ŽåIllegalArgumentException - æå®ããããããå
ã®ããŒãŸãã¯å€ã®ããããããã£ãåå ã§ããã®ãããã«ããããæ ŒçŽã§ããªãå Žåvoid clear()
UnsupportedOperationException - clearãªãã¬ãŒã·ã§ã³ããã®ãããã§ãµããŒããããªãå ŽåSet<K> keySet()
Setãã¥ãŒãè¿ããŸãã ã»ããã¯ããããšé£åããŠããã®ã§ããããã«å¯Ÿãã倿Žã¯ã»ããã«åæ ããããŸããã»ããã«å¯Ÿãã倿Žã¯ãããã«åæ ãããŸãã ã»ããã®å埩åŠçäžã«ãããã倿Žãããå Žåãå埩åŠçã®çµæã¯å®çŸ©ãããŠããŸãã(ã€ãã¬ãŒã¿èªèº«ã®removeãªãã¬ãŒã·ã§ã³ãé€ã)ã ã»ããã¯èŠçŽ ã®åé€ããµããŒãããŸããIterator.removeãSet.removeãremoveAllãretainAllãããã³clearãªãã¬ãŒã·ã§ã³ã§å¯Ÿå¿ãããããã³ã°ããããããåé€ããŸãã addãŸãã¯addAllãªãã¬ãŒã·ã§ã³ã¯ãµããŒãããŠããŸããã Collection<V> values()
Collectionãã¥ãŒãè¿ããŸãã ã³ã¬ã¯ã·ã§ã³ã¯ããããšé£åããŠããã®ã§ããããã«å¯Ÿãã倿Žã¯ã³ã¬ã¯ã·ã§ã³ã«åæ ããããŸãã³ã¬ã¯ã·ã§ã³ã«å¯Ÿãã倿Žã¯ãããã«åæ ãããŸãã ã³ã¬ã¯ã·ã§ã³ã®å埩åŠçäžã«ãããã倿Žãããå Žåãå埩åŠçã®çµæã¯å®çŸ©ãããŠããŸãã(ã€ãã¬ãŒã¿èªèº«ã®removeãªãã¬ãŒã·ã§ã³ãé€ã)ã ã³ã¬ã¯ã·ã§ã³ã¯èŠçŽ ã®åé€ããµããŒãããŸããIterator.removeãCollection.removeãremoveAllãretainAllãããã³clearãªãã¬ãŒã·ã§ã³ã§å¯Ÿå¿ãããããã³ã°ããããããåé€ããŸãã addãŸãã¯addAllãªãã¬ãŒã·ã§ã³ã¯ãµããŒãããŠããŸããã Set<Map.Entry<K,V>> entrySet()
Setãã¥ãŒãè¿ããŸãã ã»ããã¯ããããšé£åããŠããã®ã§ããããã«å¯Ÿãã倿Žã¯ã»ããã«åæ ããããŸããã»ããã«å¯Ÿãã倿Žã¯ãããã«åæ ãããŸãã ã»ããã®å埩åŠçäžã«ãããã倿Žãããå Žåãå埩åŠçã®çµæã¯å®çŸ©ãããŠããŸãã(ã€ãã¬ãŒã¿èªèº«ã®removeãªãã¬ãŒã·ã§ã³ããŸãã¯ã€ãã¬ãŒã¿ã«ããè¿ããããããã»ãšã³ããªã«å¯ŸããsetValueãªãã¬ãŒã·ã§ã³ãé€ã)ã ã»ããã¯èŠçŽ ã®åé€ããµããŒãããŸããIterator.removeãSet.removeãremoveAllãretainAllãããã³clearãªãã¬ãŒã·ã§ã³ã§å¯Ÿå¿ãããããã³ã°ããããããåé€ããŸãã addãŸãã¯addAllãªãã¬ãŒã·ã§ã³ã¯ãµããŒãããŠããŸããã boolean equals(Object o)
equalsãã¯ã©ã¹Objecto - ãã®ããããšçãããã©ãããæ¯èŒããããªããžã§ã¯ãObject.hashCode()ãHashMapint hashCode()
Object.hashCode()ã®äžè¬èŠçŽã«ãã£ãŠèŠæ±ãããããã«ãä»»æã®2ã€ã®ãããm1ãšm2ã§m1.equals(m2)ã§ããã°ãm1.hashCode()==m2.hashCode()ãšãªãããšãä¿èšŒãããŸãã hashCodeãã¯ã©ã¹ObjectMap.Entry.hashCode(), Object.equals(Object), equals(Object)default V getOrDefault(Object key, V defaultValue)
defaultValueãè¿ããŸããkey - é¢é£ä»ããããå€ãè¿ãããããŒdefaultValue - ããŒã®ããã©ã«ãã»ãããã³ã°defaultValueClassCastException - ãã®ããŒããã®ãããã«é©ããªãåã®å Žå(ãªãã·ã§ã³)NullPointerException - æå®ãããããŒãnullã§ããããã®ããããnullããŒãèš±å¯ããªãå Žå(ãªãã·ã§ã³)default void forEach(BiConsumer<? super K,? super V> action)
mapã§ã¯ãããã©ã«ãå®è£
ã¯æ¬¡ãšåçã§ãã
for (Map.Entry<K, V> entry : map.entrySet())
action.accept(entry.getKey(), entry.getValue());
ããã©ã«ãå®è£
ã¯ããã®ã¡ãœããã®åæãŸãã¯ååæ§ããããã£ã«é¢ããŠãªã«ãä¿èšŒããŸããã ååæ§ä¿èšŒãæäŸãããã¹ãŠã®å®è£
ã¯ããã®ã¡ãœããããªãŒããŒã©ã€ããããã®äžŠè¡æ§ããããã£ãããã¥ã¡ã³ãåããå¿
èŠããããŸãã action - åãšã³ããªã«å¯ŸããŠå®è¡ãããã¢ã¯ã·ã§ã³NullPointerException - æå®ãããã¢ã¯ã·ã§ã³ãnullã§ããå ŽåConcurrentModificationException - åé€ãããšã³ããªãå埩äžã«èŠã€ãããªãå Žådefault void replaceAll(BiFunction<? super K,? super V,? extends V> function)
ãã®mapã§ã¯ãããã©ã«ãå®è£
ã¯æ¬¡ãšåçã§ãã
for (Map.Entry<K, V> entry : map.entrySet())
entry.setValue(function.apply(entry.getKey(), entry.getValue()));
ããã©ã«ãå®è£ ã¯ããã®ã¡ãœããã®åæãŸãã¯ååæ§ããããã£ã«é¢ããŠãªã«ãä¿èšŒããŸããã ååæ§ä¿èšŒãæäŸãããã¹ãŠã®å®è£ ã¯ããã®ã¡ãœããããªãŒããŒã©ã€ããããã®äžŠè¡æ§ããããã£ãããã¥ã¡ã³ãåããå¿ èŠããããŸãã
function - åãšã³ããªã«é©çšãã颿°UnsupportedOperationException - setãªãã¬ãŒã·ã§ã³ããã®ãããã®ãšã³ããªã»ã»ããã»ã€ãã¬ãŒã¿ã§ãµããŒããããªãå ŽåãClassCastException - 眮æå€ã®ã¯ã©ã¹ãã眮æå€ããã®ãããã«æ ŒçŽãããããšã劚ããå ŽåNullPointerException - æå®ããã颿°ãnullã®å ŽåããŸãã¯æå®ããã眮æå€ãnullã§ãã®ããããnullå€ãèš±å¯ããªãå ŽåClassCastException - 眮æå€ã®åããã®ãããã«äžé©åãªå Žå(ãªãã·ã§ã³)NullPointerException - 颿°ãŸãã¯çœ®æå€ãnullã§ããã®ããããnullããŒãŸãã¯å€ãèš±å¯ããªãå Žå(ãªãã·ã§ã³)IllegalArgumentException - 眮æå€ã®ãªãããã®ããããã£ãã眮æå€ããã®ãããã«æ ŒçŽãããããšã劚ããå Žå(ãªãã·ã§ã³)ConcurrentModificationException - åé€ãããšã³ããªãå埩äžã«èŠã€ãããªãå Žådefault V putIfAbsent(K key, V value)
nullã«ããããããŠãã)å Žåã¯ããããæå®ãããå€ã«é¢é£ä»ããŠnullãè¿ããŸãããã以å€ã®å Žåã¯ãçŸåšã®å€ãè¿ããŸããmapã§ã¯ãããã©ã«ãå®è£
ã¯æ¬¡ãšåçã§ãã
V v = map.get(key);
if (v == null)
v = map.put(key, value);
return v;
ããã©ã«ãå®è£ ã¯ããã®ã¡ãœããã®åæãŸãã¯ååæ§ããããã£ã«é¢ããŠãªã«ãä¿èšŒããŸããã ååæ§ä¿èšŒãæäŸãããã¹ãŠã®å®è£ ã¯ããã®ã¡ãœããããªãŒããŒã©ã€ããããã®äžŠè¡æ§ããããã£ãããã¥ã¡ã³ãåããå¿ èŠããããŸãã
key - æå®ãããå€ãé¢é£ä»ããããããŒvalue - æå®ãããããŒã«é¢é£ä»ããããå€nullã (ãŸããå®è£
ãnullå€ããµããŒãããŠããå Žåãæ»ãå€nullã¯ã以åã«ãããã§ããŒãšnullãé¢é£ä»ããããŠããããšã瀺ãå Žåãããã) UnsupportedOperationException - putæäœããã®ãããã§ãµããŒããããªãå Žå(ãªãã·ã§ã³)ClassCastException - ããŒãŸãã¯å€ããã®ãããã«é©ããªãåã®å Žå(ãªãã·ã§ã³)NullPointerException - æå®ãããããŒãŸãã¯å€ãnullã§ããããã€ãã®ããããnullã®ããŒãŸãã¯å€ãèš±å¯ããªãå Žå(ãªãã·ã§ã³)IllegalArgumentException - æå®ãããããŒãŸãã¯å€ã®ãªãããã®ããããã£ãããããããã®ãããã«æ ŒçŽãããã®ã劚ããå Žå(ãªãã·ã§ã³)default boolean remove(Object key, Object value)
mapã§ã¯ãããã©ã«ãå®è£
ã¯æ¬¡ãšåçã§ãã
if (map.containsKey(key) && Objects.equals(map.get(key), value)) {
map.remove(key);
return true;
} else
return false;
ããã©ã«ãå®è£ ã¯ããã®ã¡ãœããã®åæãŸãã¯ååæ§ããããã£ã«é¢ããŠãªã«ãä¿èšŒããŸããã ååæ§ä¿èšŒãæäŸãããã¹ãŠã®å®è£ ã¯ããã®ã¡ãœããããªãŒããŒã©ã€ããããã®äžŠè¡æ§ããããã£ãããã¥ã¡ã³ãåããå¿ èŠããããŸãã
key - æå®ãããå€ãé¢é£ä»ããããããŒvalue - æå®ãããããŒã«é¢é£ä»ããããŠãããšäºæ³ãããå€trueUnsupportedOperationException - removeæäœããã®ãããã§ãµããŒããããªãå Žå(ãªãã·ã§ã³)ClassCastException - ããŒãŸãã¯å€ããã®ãããã«é©ããªãåã®å Žå(ãªãã·ã§ã³)NullPointerException - æå®ãããããŒãŸãã¯å€ãnullã§ããããã€ãã®ããããnullã®ããŒãŸãã¯å€ãèš±å¯ããªãå Žå(ãªãã·ã§ã³)default boolean replace(K key, V oldValue, V newValue)
mapã§ã¯ãããã©ã«ãå®è£
ã¯æ¬¡ãšåçã§ãã
if (map.containsKey(key) && Objects.equals(map.get(key), value)) {
map.put(key, newValue);
return true;
} else
return false;
ããã©ã«ãå®è£
ã¯ãoldValueãnullã®å Žåã§ãnewValueãnullã§ãªãå Žåã«ã¯nullå€ããµããŒãããªããããã«å¯ŸããŠãNullPointerExceptionãã¹ããŒããŸããã
ããã©ã«ãå®è£ ã¯ããã®ã¡ãœããã®åæãŸãã¯ååæ§ããããã£ã«é¢ããŠãªã«ãä¿èšŒããŸããã ååæ§ä¿èšŒãæäŸãããã¹ãŠã®å®è£ ã¯ããã®ã¡ãœããããªãŒããŒã©ã€ããããã®äžŠè¡æ§ããããã£ãããã¥ã¡ã³ãåããå¿ èŠããããŸãã
key - æå®ãããå€ãé¢é£ä»ããããããŒoldValue - æå®ãããããŒã«é¢é£ä»ããããŠãããšäºæ³ãããå€newValue - æå®ãããããŒã«é¢é£ä»ããããå€trueUnsupportedOperationException - putæäœããã®ãããã§ãµããŒããããªãå Žå(ãªãã·ã§ã³)ClassCastException - æå®ãããããŒãŸãã¯å€ã®ã¯ã©ã¹ãåå ã§ããã®ãããã«ãããæ ŒçŽã§ããªãå ŽåNullPointerException - æå®ãããããŒãŸãã¯newValueãnullã§ããã®ããããnullããŒãŸãã¯å€ãèš±å¯ããªãå ŽåNullPointerException - oldValueãnullã§ããã®ããããnullå€ãèš±å¯ããªãå Žå(ãªãã·ã§ã³)IllegalArgumentException - æå®ãããããŒãŸãã¯å€ã®ããããããã£ãåå ã§ãããããã®ãããã«æ ŒçŽã§ããªãå Žådefault V replace(K key, V value)
mapã§ã¯ãããã©ã«ãå®è£
ã¯æ¬¡ãšåçã§ãã
if (map.containsKey(key)) {
return map.put(key, value);
} else
return null;
ããã©ã«ãå®è£ ã¯ããã®ã¡ãœããã®åæãŸãã¯ååæ§ããããã£ã«é¢ããŠãªã«ãä¿èšŒããŸããã ååæ§ä¿èšŒãæäŸãããã¹ãŠã®å®è£ ã¯ããã®ã¡ãœããããªãŒããŒã©ã€ããããã®äžŠè¡æ§ããããã£ãããã¥ã¡ã³ãåããå¿ èŠããããŸãã
key - æå®ãããå€ãé¢é£ä»ããããããŒvalue - æå®ãããããŒã«é¢é£ä»ããããå€nullã (ãŸããå®è£
ãnullå€ããµããŒãããŠããå Žåãæ»ãå€nullã¯ã以åã«ãããã§ããŒãšnullãé¢é£ä»ããããŠããããšã瀺ãå Žåãããã) UnsupportedOperationException - putæäœããã®ãããã§ãµããŒããããªãå Žå(ãªãã·ã§ã³)ClassCastException - æå®ãããããŒãŸãã¯å€ã®ã¯ã©ã¹ãããããããã®ãããã«æ ŒçŽãããã®ã劚ããå Žå(ãªãã·ã§ã³)NullPointerException - ãã®ããããnullããŒãnullå€ãèš±å¯ããªããšãã«ãæå®ãããããŒãŸãã¯å€ãnullã®å ŽåIllegalArgumentException - æå®ãããããŒãŸãã¯å€ã®ããããããã£ãåå ã§ããã®ãããã«ããããæ ŒçŽã§ããªãå Žådefault V computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction)
nullã«ããããããŠãã)å Žåãæå®ããããããã³ã°é¢æ°ã䜿çšããŠãã®å€ã®èšç®ã詊è¡ããnullã§ãªãå Žåã¯ããããã®ãããã«å
¥åããŸãã
颿°ãnullãè¿ããå Žåããããã³ã°ã¯èšé²ãããŸããã 颿°èªäœã(éãã§ãã¯)äŸå€ãã¹ããŒããå Žåããã®äŸå€ã¯åã¹ããŒããããããã³ã°ã¯èšé²ãããŸããã ãã£ãšãäžè¬çãªçšéã¯ã次ã®ããã«åæã®ããããããå€ãŸãã¯ã¡ã¢åãããçµæãšããŠæ©èœããæ°ãããªããžã§ã¯ããæ§ç¯ããããšã§ãã
map.computeIfAbsent(key, k -> new Value(f(k)));
ãŸãã¯ã1ã€ã®ããŒã§è€æ°ã®å€ããµããŒãããè€æ°å€ãããMap<K,Collection<V>>ãå®è£
ããããšã§ãã
map.computeIfAbsent(key, k -> new HashSet<V>()).add(v);
mapã®æ¬¡ã®ã¹ããããšåçã§ããããã®åŸçŸåšã®å€ãè¿ããŸããååšããªãå Žåã¯nullãè¿ããŸãã
if (map.get(key) == null) {
V newValue = mappingFunction.apply(key);
if (newValue != null)
map.put(key, newValue);
}
ããã©ã«ãå®è£
ã¯ããã®ã¡ãœããã®åæãŸãã¯ååæ§ããããã£ã«é¢ããŠãªã«ãä¿èšŒããŸããã ååæ§ä¿èšŒãæäŸãããã¹ãŠã®å®è£
ã¯ããã®ã¡ãœããããªãŒããŒã©ã€ããããã®äžŠè¡æ§ããããã£ãããã¥ã¡ã³ãåããå¿
èŠããããŸãã ç¹ã«ããµãã€ã³ã¿ãã§ãŒã¹ConcurrentMapã®ãã¹ãŠã®å®è£
ã¯ãå€ãååšããªãå Žåã«ã®ã¿ãã®é¢æ°ãååçã«1åé©çšããããã©ãããããã¥ã¡ã³ãåããå¿
èŠããããŸãã
key - æå®ãããå€ãé¢é£ä»ããããããŒmappingFunction - å€ãèšç®ããããã®é¢æ°NullPointerException - æå®ãããããŒãnullã§ããããã®ããããnullããŒããµããŒãããªãå ŽåããŸãã¯mappingFunctionãnullã§ããå ŽåUnsupportedOperationException - putæäœããã®ãããã§ãµããŒããããªãå Žå(ãªãã·ã§ã³)ClassCastException - æå®ãããããŒãŸãã¯å€ã®ã¯ã©ã¹ãããããããã®ãããã«æ ŒçŽãããã®ã劚ããå Žå(ãªãã·ã§ã³)default V computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
颿°ãnullãè¿ããå Žåããããã³ã°ã¯åé€ãããŸãã 颿°èªäœã(éãã§ãã¯)äŸå€ãã¹ããŒããå Žåããã®äŸå€ã¯åã¹ããŒãããçŸåšã®ãããã³ã°ã¯å€æŽãããŸããã
mapã«å¯ŸããŠä»¥äžã®ã¹ããããå®è¡ããŠããçŸåšã®å€(ä»ã¯ååšããªãå Žåã¯null)ãè¿ãããšãšåçã§ãã
if (map.get(key) != null) {
V oldValue = map.get(key);
V newValue = remappingFunction.apply(key, oldValue);
if (newValue != null)
map.put(key, newValue);
else
map.remove(key);
}
ããã©ã«ãå®è£
ã¯ããã®ã¡ãœããã®åæãŸãã¯ååæ§ããããã£ã«é¢ããŠãªã«ãä¿èšŒããŸããã ååæ§ä¿èšŒãæäŸãããã¹ãŠã®å®è£
ã¯ããã®ã¡ãœããããªãŒããŒã©ã€ããããã®äžŠè¡æ§ããããã£ãããã¥ã¡ã³ãåããå¿
èŠããããŸãã ç¹ã«ããµãã€ã³ã¿ãã§ãŒã¹ConcurrentMapã®ãã¹ãŠã®å®è£
ã¯ãå€ãååšããªãå Žåã«ã®ã¿ãã®é¢æ°ãååçã«1åé©çšããããã©ãããããã¥ã¡ã³ãåããå¿
èŠããããŸãã
key - æå®ãããå€ãé¢é£ä»ããããããŒremappingFunction - å€ãèšç®ããããã®é¢æ°NullPointerException - æå®ãããããŒãnullã§ããããã®ããããnullããŒããµããŒãããªãå ŽåããŸãã¯remappingFunctionãnullã§ããå ŽåUnsupportedOperationException - putæäœããã®ãããã§ãµããŒããããªãå Žå(ãªãã·ã§ã³)ClassCastException - æå®ãããããŒãŸãã¯å€ã®ã¯ã©ã¹ãããããããã®ãããã«æ ŒçŽãããã®ã劚ããå Žå(ãªãã·ã§ã³)default V compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
null)ã ããšãã°ã次ã®ããã«ãå€ã®ãããã³ã°ã«String msgãäœæãŸãã¯è¿œå ããŸãã
map.compute(key, (k, v) -> (v == null) ? msg : v.concat(msg))
(ãã®ãããªç®çã§äœ¿çšããmerge()ã¡ãœããã¯ãå€ãã®å ŽåãããåçŽã§ãã)
颿°ãnullãè¿ããå Žåããããã³ã°ã¯åé€ãããŸã(æåããååšããªãå Žåã¯ãååšããªããŸãŸã§ã)ã 颿°èªäœã(éãã§ãã¯)äŸå€ãã¹ããŒããå Žåããã®äŸå€ã¯åã¹ããŒãããçŸåšã®ãããã³ã°ã¯å€æŽãããŸããã
mapã®æ¬¡ã®ã¹ãããã®å®è¡ãšåçã§ããããã®åŸçŸåšã®å€ãè¿ããŸããååšããªãå Žåã¯nullãè¿ããŸãã
V oldValue = map.get(key);
V newValue = remappingFunction.apply(key, oldValue);
if (oldValue != null ) {
if (newValue != null)
map.put(key, newValue);
else
map.remove(key);
} else {
if (newValue != null)
map.put(key, newValue);
else
return null;
}
ããã©ã«ãå®è£
ã¯ããã®ã¡ãœããã®åæãŸãã¯ååæ§ããããã£ã«é¢ããŠãªã«ãä¿èšŒããŸããã ååæ§ä¿èšŒãæäŸãããã¹ãŠã®å®è£
ã¯ããã®ã¡ãœããããªãŒããŒã©ã€ããããã®äžŠè¡æ§ããããã£ãããã¥ã¡ã³ãåããå¿
èŠããããŸãã ç¹ã«ããµãã€ã³ã¿ãã§ãŒã¹ConcurrentMapã®ãã¹ãŠã®å®è£
ã¯ãå€ãååšããªãå Žåã«ã®ã¿ãã®é¢æ°ãååçã«1åé©çšããããã©ãããããã¥ã¡ã³ãåããå¿
èŠããããŸãã
key - æå®ãããå€ãé¢é£ä»ããããããŒremappingFunction - å€ãèšç®ããããã®é¢æ°NullPointerException - æå®ãããããŒãnullã§ããããã®ããããnullããŒããµããŒãããªãå ŽåããŸãã¯remappingFunctionãnullã§ããå ŽåUnsupportedOperationException - putæäœããã®ãããã§ãµããŒããããªãå Žå(ãªãã·ã§ã³)ClassCastException - æå®ãããããŒãŸãã¯å€ã®ã¯ã©ã¹ãããããããã®ãããã«æ ŒçŽãããã®ã劚ããå Žå(ãªãã·ã§ã³)default V merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction)
nullã®å Žåã¯åé€ããŸãã ãã®ã¡ãœããã¯ã1ã€ã®ããŒã«å¯Ÿããè€æ°ã®ããããããå€ãçµåãããšãã«äœ¿çšã§ããŸãã ããšãã°ã次ã®ããã«ãå€ã®ãããã³ã°ã«String msgãäœæãŸãã¯è¿œå ããŸãã
map.merge(key, msg, String::concat)
颿°ãnullãè¿ããå Žåããããã³ã°ã¯åé€ãããŸãã 颿°èªäœã(éãã§ãã¯)äŸå€ãã¹ããŒããå Žåããã®äŸå€ã¯åã¹ããŒãããçŸåšã®ãããã³ã°ã¯å€æŽãããŸããã
mapã®æ¬¡ã®ã¹ãããã®å®è¡ãšåçã§ããããã®åŸçŸåšã®å€ãè¿ããŸããååšããªãå Žåã¯nullãè¿ããŸãã
V oldValue = map.get(key);
V newValue = (oldValue == null) ? value :
remappingFunction.apply(oldValue, value);
if (newValue == null)
map.remove(key);
else
map.put(key, newValue);
ããã©ã«ãå®è£
ã¯ããã®ã¡ãœããã®åæãŸãã¯ååæ§ããããã£ã«é¢ããŠãªã«ãä¿èšŒããŸããã ååæ§ä¿èšŒãæäŸãããã¹ãŠã®å®è£
ã¯ããã®ã¡ãœããããªãŒããŒã©ã€ããããã®äžŠè¡æ§ããããã£ãããã¥ã¡ã³ãåããå¿
èŠããããŸãã ç¹ã«ããµãã€ã³ã¿ãã§ãŒã¹ConcurrentMapã®ãã¹ãŠã®å®è£
ã¯ãå€ãååšããªãå Žåã«ã®ã¿ãã®é¢æ°ãååçã«1åé©çšããããã©ãããããã¥ã¡ã³ãåããå¿
èŠããããŸãã
key - çµæå€ãé¢é£ä»ããããããŒvalue - ããŒã«é¢é£ä»ããããæ¢åã®å€ã«ããŒãžãããnull以å€ã®å€ãæ¢åã®å€ããªãå ŽåããŸãã¯ããŒã«nullå€ãé¢é£ä»ããããŠããå Žåã¯ãããŒã«é¢é£ä»ããããnull以å€ã®å€remappingFunction - å€ãååšããå Žåã«å€ãåèšç®ããããã®é¢æ°UnsupportedOperationException - putæäœããã®ãããã§ãµããŒããããªãå Žå(ãªãã·ã§ã³)ClassCastException - æå®ãããããŒãŸãã¯å€ã®ã¯ã©ã¹ãããããããã®ãããã«æ ŒçŽãããã®ã劚ããå Žå(ãªãã·ã§ã³)NullPointerException - æå®ãããããŒãnullã§ããããã®ããããnullããŒããµããŒãããªãå Žåããããã¯å€ãŸãã¯remappingFunctionãnullã§ããå Žå ãã°ãŸãã¯æ©èœãéä¿¡
詳现ãªAPIãªãã¡ã¬ã³ã¹ããã³éçºè
ããã¥ã¡ã³ãã«ã€ããŠã¯ãJava SEã®ããã¥ã¡ã³ããåç
§ããŠãã ããã ãã®ããã¥ã¡ã³ãã«ã¯ãæŠå¿µçãªæŠèŠãçšèªã®å®çŸ©ãåé¿æ¹æ³ãæå¹ãªã³ãŒãäŸãªã©ã®ãéçºè
ã察象ã«ãããã詳现ãªèª¬æãå«ãŸããŠããŸãã
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyãåç
§ããŠãã ããã