public class IdentityHashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Serializable, Cloneable
ãã®ã¯ã©ã¹ã¯ãæ±çšã®Mapå®è£ ã§ã¯ãããŸããã ãã®ã¯ã©ã¹ãMapã€ã³ã¿ãã§ãŒã¹ãå®è£ ããŠãããšããªããžã§ã¯ãã®æ¯èŒæã«equalsã¡ãœããã®äœ¿çšãèŠæ±ããMapã®äžè¬çãªèŠçŽã«æå³çã«éåãããŸãã ãã®ã¯ã©ã¹ã¯ãåç §ã®åäžæ§ã®ã»ãã³ãã£ãã¯ã¹ãèŠæ±ãããå Žåã«ã®ã¿äœ¿çšãããããã«èšèšãããŠããŸãã
ãã®ã¯ã©ã¹ã®éåžžã®äœ¿çšã§ã¯ãçŽååãŸãã¯ãã£ãŒãã»ã³ããŒãªã©ãããããžãä¿æãããªããžã§ã¯ãã»ã°ã©ã倿ãè¡ããŸãã ãã®ãããªå€æãå®è¡ããããã«ãããã°ã©ã ã¯ããã§ã«åŠçããããã¹ãŠã®ãªããžã§ã¯ãåç §ã远跡ãããããŒã衚ããä¿æããå¿ èŠããããŸãã å¥åã®ãªããžã§ã¯ããçããå Žåã§ããããŒã衚ã¯ãã®ãªããžã§ã¯ããåçèŠããŠã¯ãããŸããã ãã®ã¯ã©ã¹ã®ããã²ãšã€ã®äœ¿çšæ³ã¯ããããã·ã»ãªããžã§ã¯ããç¶æããããšã§ãã ããšãã°ããããã°æ©èœã¯ããããã°ãããããã°ã©ã ã§åãªããžã§ã¯ãã®ãããã·ã»ãªããžã§ã¯ããç¶æã§ããŸãã
ãã®ã¯ã©ã¹ã¯ããããã«é¢é£ãããªãã·ã§ã³ã®ãªãã¬ãŒã·ã§ã³ããã¹ãŠãµããŒãããnullå€ããã³nullããŒã䜿çšã§ããŸãã ãã®ã¯ã©ã¹ã¯ãããã®é åºãä¿èšŒããŸãããç¹ã«ããã®é åºãåžžã«äžå®ã«ä¿ã€ããšãä¿èšŒããŸããã
ãã®ã¯ã©ã¹ã¯ãã·ã¹ãã ã»ã¢ã€ãã³ãã£ãã£ã»ããã·ã¥é¢æ°(System.identityHashCode(Object))ãè€æ°ã®ãã±ããã«èŠçŽ ãé©åã«åæ£ããããšä»®å®ããŠãåºæ¬ãªãã¬ãŒã·ã§ã³(getããã³put)ã«äžå®æéã®ããã©ãŒãã³ã¹ãæäŸããŸãã
ãã®ã¯ã©ã¹ã«ã¯ãã¥ãŒãã³ã°ã»ãã©ã¡ãŒã¿ãã²ãšã€ãããŸãããã¥ãŒãã³ã°ã»ãã©ã¡ãŒã¿ã¯ã»ãã³ãã£ãã¯ã¹ã§ã¯ãªããããã©ãŒãã³ã¹ã«åœ±é¿ãäžããŸããããªãã¡ãäºæ³æå€§ãµã€ãºã§ãã ãã®ãã©ã¡ãŒã¿ã¯ãããããä¿æããããšäºæ³ãããããŒå€ãããã³ã°ã®æå€§æ°ã§ãã ãã®ãã©ã¡ãŒã¿ã䜿çšããŠãããã·ã¥è¡šãåææ§æãããã±ããã®æ°ãç®åºããŸãã äºæ³ãããæå€§ãµã€ãºãšãã±ããæ°ãšã®æ£ç¢ºãªé¢ä¿ã¯æå®ãããŠããŸããã
ãããã®ãµã€ãº(ããŒãšå€ã®ãããã³ã°æ°)ãæåŸ ãããæå€§ãµã€ãºãããªãã®å€§ããã§è¶ éããå Žåããã±ããã®æ°ã¯å¢å ããŸãã ãã±ããã®æ°ã®å¢å (ããã·ã¥ã®ããçŽã)ã¯éåžžã«è²»çšããããããã倧ãããååãªæåŸ ãããæå€§ãµã€ãºã§ã¢ã€ãã³ãã£ãã£ã»ããã·ã¥ãäœæãããšè²»çšãæããããŸãã äžæ¹ãã³ã¬ã¯ã·ã§ã³ã»ãã¥ãŒã®ç¹°è¿ãã¯ãããã·ã¥è¡šã®ãã±ããæ°ã«æ¯äŸããæéãèŠæ±ããŸãããã®ããç¹°è¿ãã®ããã©ãŒãã³ã¹ãŸãã¯ã¡ã¢ãªãŒäœ¿çšã«ç¹ã«æžå¿µãããå Žåã¯ãäºæ³æå€§ãµã€ãºãããŸã倧ããããªãããã«ããŸãã
ãã®å®è£
ã¯synchronizedãããŸããã è€æ°ã®ã¹ã¬ããã䞊è¡ããŠã¢ã€ãã³ãã£ãã£ã»ããã·ã¥ã»ãããã«ã¢ã¯ã»ã¹ãããããã®ã¹ã¬ããã®å°ãªããšã1ã€ãæ§é çã«ãããã倿Žããå Žåã¯ãå€éšã§ãã®åæããšãå¿
èŠããããŸãã æ§é çãªå€æŽãšã¯ã1ã€ä»¥äžã®ãããã³ã°ã远å ãŸãã¯åé€ãããªãã¬ãŒã·ã§ã³ã®ããšã§ãããã§ã«ã€ã³ã¹ã¿ã³ã¹ã«æ ŒçŽãããŠããããŒã«é¢é£ä»ããããå€ã倿Žããããšã¯æ§é çãªå€æŽã§ã¯ãããŸããã ããã¯éåžžãããããèªç¶ã«ã«ãã»ã«åããäžéšã®ãªããžã§ã¯ãã§synchronizedããããšã«ãã£ãŠéæãããŸãã ãã®ãããªãªããžã§ã¯ããååšããªãå Žåã¯ãCollections.synchronizedMapã¡ãœããã䜿çšããŠãããããã©ãããããããšããèŠãããŸãã ãããã誀ã£ãŠsynchronizedãªãã§ã¢ã¯ã»ã¹ãããã®ãé²ãããã«ãäœææã«è¡ãããšããèŠãããŸãã
Map m = Collections.synchronizedMap(new IdentityHashMap(...));
ãã®ã¯ã©ã¹ã®ãã¹ãŠã®ã³ã¬ã¯ã·ã§ã³ã»ãã¥ãŒã»ã¡ãœããã«ãã£ãŠè¿ãããã³ã¬ã¯ã·ã§ã³ã®iteratorã¡ãœããã«ãã£ãŠè¿ãããã€ãã¬ãŒã¿ã¯ããã§ã€ã«ãã¡ã¹ãã§ããã€ãã¬ãŒã¿ã®äœæåŸã«ãã€ãã¬ãŒã¿èªäœã®removeã¡ãœãã以å€ã®æ¹æ³ã§ããããæ§é çã«å€æŽããããšãã€ãã¬ãŒã¿ã¯ConcurrentModificationExceptionãã¹ããŒããŸãã ãã®ããã«ã䞊è¡ããŠå€æŽãè¡ããããšãã€ãã¬ãŒã¿ã¯ãå°æ¥ã®äºæž¬ã§ããªãæç¹ã«ãããŠäºæž¬ã§ããªãåäœãçºçããå±éºãåé¿ããããã«ããã ã¡ã«ãã€æéããäŸå€ãã¹ããŒããŸãã
éåžžãéåæã®äžŠè¡å€æŽãããå Žåã確ããªä¿èšŒãè¡ãããšã¯äžå¯èœãªã®ã§ãã€ãã¬ãŒã¿ã®ãã§ã€ã«ãã¡ã¹ãã®åäœãä¿èšŒããããšã¯ã§ããŸããã ãã§ã€ã«ãã¡ã¹ãã»ã€ãã¬ãŒã¿ã¯æååªåååã«åºã¥ããConcurrentModificationExceptionãã¹ããŒããŸãã ãããã£ãŠãæ£ç¢ºãæãããã«ãã®äŸå€ã«äŸåããããã°ã©ã ãæžãããšã¯èª€ãã§ãããã§ã€ã«ãã¡ã¹ãã®ã€ãã¬ãŒã¿ã¯ãã°ãæ€åºããããã«ã®ã¿äœ¿çšãã¹ãã§ãã
å®è£
ã«ããã£ãŠã®ããŒã: SedgewickãšKnuthã®ããã¹ãã®äŸã§èª¬æããããã«ããã§ã€ã«ãã¡ã¹ãã»ã€ãã¬ãŒã¿ã¯ãåçŽãªç·åœ¢ãããŒãã®ããã·ã¥è¡šã§ãã ãã®é
åã¯ãããŒãšå€ã®ä¿æã亀äºã«è¡ããŸãã åå¥ã®é
åã䜿ã£ãŠè¡ããããã倧ããªè¡šã«ã€ããŠããé©åãªå±ææ§ããããŸãã å€ãã®JREå®è£
ãšãªãã¬ãŒã·ã§ã³ã»ããã¯ã¹ã§ã¯ããã®ã¯ã©ã¹ã¯ã(ç·åœ¢ãããŒãã§ã¯ãªããã§ãŒã³ã«äœ¿çšãã) HashMapããã髿§èœã®ããã©ãŒãã³ã¹ããããããŸãã
ãã®ã¯ã©ã¹ã¯ãJava Collections Frameworkã®ã¡ã³ããŒã§ãã
System.identityHashCode(Object), Object.hashCode(), Collection, Map, HashMap, TreeMap, çŽååããã圢åŒAbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>| ã³ã³ã¹ãã©ã¯ã¿ | 説æ |
|---|---|
IdentityHashMap() |
ããã©ã«ãã®äºæ³æå€§ãµã€ãº(21)ã§ãæ°ãã空ã®ã¢ã€ãã³ãã£ãã£ã»ããã·ã¥ã»ããããæ§ç¯ããŸãã
|
IdentityHashMap(int expectedMaxSize) |
æå®ããäºæ³æå€§ãµã€ãºã§ãæ°ãã空ã®ããããæ§ç¯ããŸãã
|
IdentityHashMap(Map<? extends K,? extends V> m) |
æå®ããããããã®ããŒãšå€ã®ãããã³ã°ãå«ãæ°ããã¢ã€ãã³ãã£ãã£ã»ããã·ã¥ã»ããããæ§ç¯ããŸãã
|
| 修食åãšå | ã¡ãœãã | 説æ |
|---|---|---|
void |
clear() |
ãã¹ãŠã®ãããã³ã°ããããããåé€ããŸãã
|
Object |
clone() |
ã¢ã€ãã³ãã£ãã£ã»ããã·ã¥ã»ãããã®ã·ã£ããŒã»ã³ããŒãè¿ããŸããããŒãšå€ã¯ãããèªäœã¯è€è£œãããŸããã
|
boolean |
containsKey(Object key) |
æå®ããããªããžã§ã¯ãåç
§ãããã®ã¢ã€ãã³ãã£ãã£ã»ããã·ã¥ã»ãããã®ããŒãã©ãããå€å®ããŸãã
|
boolean |
containsValue(Object value) |
æå®ããããªããžã§ã¯ãåç
§ãããã®ã¢ã€ãã³ãã£ãã£ã»ããã·ã¥ã»ãããã®å€ãã©ãããå€å®ããŸãã
|
Set<Map.Entry<K,V>> |
entrySet() |
ãã®ãããã«å«ãŸãããããã³ã°ã®
Setãã¥ãŒãè¿ããŸãã |
boolean |
equals(Object o) |
æå®ããããªããžã§ã¯ãããã®ããããšçãããã©ãããæ¯èŒããŸãã
|
void |
forEach(BiConsumer<? super K,? super V> action) |
ãã®ãããã®ãã¹ãŠã®ãšã³ããªã®åŠçãå®äºãããã¢ã¯ã·ã§ã³ããäŸå€ãã¹ããŒããããŸã§ãåãšã³ããªã«å¯ŸããŠæå®ãããã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
|
V |
get(Object key) |
æå®ãããããŒãããããããŠããå€ãè¿ããŸãããã®ãããã«ãã®ããŒã®ãããã³ã°ãå«ãŸããŠããªãå Žåã¯
nullãè¿ããŸãã |
int |
hashCode() |
ãããã®ããã·ã¥ã»ã³ãŒãå€ãè¿ããŸãã
|
boolean |
isEmpty() |
ãã®ã¢ã€ãã³ãã£ãã£ã»ããã·ã¥ã»ãããã«ããŒãšå€ã®ãããã³ã°ãå«ãŸããªãå Žåã«trueãè¿ããŸãã
|
Set<K> |
keySet() |
ãããã«æ ŒçŽãããŠããããŒã®ã¢ã€ãã³ãã£ãã£ã»ããŒã¹ã®ã»ããã»ãã¥ãŒãè¿ããŸãã
|
V |
put(K key, V value) |
æå®ãããå€ãšæå®ãããããŒããã®ã¢ã€ãã³ãã£ãã£ã»ããã·ã¥ã»ãããã«é¢é£ä»ããŸãã
|
void |
putAll(Map<? extends K,? extends V> m) |
æå®ãããããããããã¹ãŠã®ãããã³ã°ããããã«ã³ããŒããŸãã
|
V |
remove(Object key) |
ããŒã«å¯Ÿãããããã³ã°ãããã°ããã®ããŒããããããåé€ããŸãã
|
void |
replaceAll(BiFunction<? super K,? super V,? extends V> function) |
ãã¹ãŠã®ãšã³ããªãåŠçããããããŸãã¯é¢æ°ãäŸå€ãã¹ããŒãããŸã§ãåãšã³ããªã®å€ãããã®ãšã³ããªã§æå®ããã颿°ãåŒã³åºããçµæã§çœ®æããŸãã
|
int |
size() |
ãã®ã¢ã€ãã³ãã£ãã£ã»ããã·ã¥ã»ãããå
ã®ããŒãšå€ã®ãããã³ã°ã®æ°ãè¿ããŸãã
|
Collection<V> |
values() |
ãã®ãããã«å«ãŸããå€ã®
Collectionãã¥ãŒãè¿ããŸãã |
toStringfinalize, getClass, notify, notifyAll, wait, wait, waitcompute, computeIfAbsent, computeIfPresent, getOrDefault, merge, putIfAbsent, remove, replace, replacepublic IdentityHashMap()
public IdentityHashMap(int expectedMaxSize)
expectedMaxSize - ãããã®äºæ³æå€§ãµã€ãºIllegalArgumentException - expectedMaxSizeãè² ã§ããå Žåpublic IdentityHashMap(Map<? extends K,? extends V> m)
m - ãããã³ã°ããã®ãããã«é
眮ããããããNullPointerException - æå®ãããããããnullã®å Žåpublic int size()
public boolean isEmpty()
public V get(Object key)
nullãè¿ããŸãã
ã€ãŸãããã®ã¡ãœããã¯ã(key == k)ãšãªãããŒkããå€vãžã®ãããã³ã°ããã®ãããã«å«ãŸããŠããå Žåã¯vãè¿ãããã以å€ã®å Žåã¯nullãè¿ããŸãã (ãã®ãããªãããã³ã°ã¯1ã€ã®ã¿ååšã§ããŸãã)
æ»ãå€nullã¯ãããããããŒã®ãããã³ã°ãä¿æããŠããªãããšã瀺ããšã¯ããããŸãããã€ãŸããããããæç€ºçã«ããŒãnullã«ãããããããšããããŸãã containsKeyãªãã¬ãŒã·ã§ã³ã䜿ããšããããã®2ã€ã®å Žåãåºå¥ã§ããŸãã
getãã€ã³ã¿ãã§ãŒã¹Map<K,V>getãã¯ã©ã¹AbstractMap<K,V>key - é¢é£ä»ããããå€ãè¿ãããããŒnullput(Object, Object)public boolean containsKey(Object key)
containsKeyãã€ã³ã¿ãã§ãŒã¹Map<K,V>containsKeyãã¯ã©ã¹AbstractMap<K,V>key - 䜿çšå¯èœãªããŒtruecontainsValue(Object)public boolean containsValue(Object value)
containsValueãã€ã³ã¿ãã§ãŒã¹Map<K,V>containsValueãã¯ã©ã¹AbstractMap<K,V>value - ãã®ãããã«ãããã©ãããå€å®ãããå€containsKey(Object)public V put(K key, V value)
putãã€ã³ã¿ãã§ãŒã¹Map<K,V>putãã¯ã©ã¹AbstractMap<K,V>key - æå®ãããå€ãé¢é£ä»ããããããŒvalue - æå®ãããããŒã«é¢é£ä»ããããå€Object.equals(Object), get(Object), containsKey(Object)public void putAll(Map<? extends K,? extends V> m)
putAllãã€ã³ã¿ãã§ãŒã¹Map<K,V>putAllãã¯ã©ã¹AbstractMap<K,V>m - ãã®ãããã«æ ŒçŽããããããã³ã°NullPointerException - æå®ãããããããnullã®å Žåpublic V remove(Object key)
removeãã€ã³ã¿ãã§ãŒã¹Map<K,V>removeãã¯ã©ã¹AbstractMap<K,V>key - ãããã³ã°ããããããåé€ãããããŒpublic void clear()
public boolean equals(Object o)
ãã®ããããéåžžã®ããããšæ¯èŒãããå Žåããã®ãããã®åç §åäžæ§ããŒã¹ã®ã»ãã³ãã£ãã¯ã¹ã«ãã£ãŠãObject.equalsèŠçŽã®ã·ã³ã¡ããªãšç§»è¡ã®èŠä»¶ã«éåããããšãã§ããŸãã ãã ããObject.equalsèŠçŽã¯ãè€æ°ã®IdentityHashMapã€ã³ã¹ã¿ã³ã¹éã«ä¿æããããšãä¿èšŒãããŠããŸãã
equalsãã€ã³ã¿ãã§ãŒã¹Map<K,V>equalsãã¯ã©ã¹AbstractMap<K,V>o - ãã®ããããšçãããã©ãããæ¯èŒããããªããžã§ã¯ãObject.equals(Object)public int hashCode()
Object.hashCode()ã®äžè¬èŠçŽã«ãã£ãŠèŠæ±ãããããã«ãä»»æã®2ã€ã®IdentityHashMapã€ã³ã¹ã¿ã³ã¹m1ãšm2ã§m1.equals(m2)ã§ããã°ãm1.hashCode()==m2.hashCode()ãšãªãããšãä¿èšŒãããŸãã
æ¯èŒãããŠãã2ã€ã®ãªããžã§ã¯ããããããIdentityHashMapã€ã³ã¹ã¿ã³ã¹ãšéåžžã®ãããã§ããå Žåã¯ããã®ãããã®entrySetã¡ãœããã«ãã£ãŠè¿ãããã»ããå ã«ããMap.Entryã€ã³ã¹ã¿ã³ã¹ã®åç §åäžæ§ããŒã¹ã®ã»ãã³ãã£ãã¯ã¹ã«ãã£ãŠãåã®æ®µèœã§èª¬æãããŠããObject.hashCodeã®èŠçŽäžã®èŠä»¶ã«éåããããšãã§ããŸãã
hashCodeãã€ã³ã¿ãã§ãŒã¹Map<K,V>hashCodeãã¯ã©ã¹AbstractMap<K,V>Object.equals(Object), equals(Object)public Object clone()
cloneãã¯ã©ã¹AbstractMap<K,V>Cloneablepublic Set<K> keySet()
ãã®ã¡ãœãããè¿ãããªããžã§ã¯ãããSetã€ã³ã¿ãã§ãŒã¹ãå®è£ ããŠããéããªããžã§ã¯ãã¯ãSetã®äžè¬èŠçŽã«ã¯åŸããŸããã ãªããžã§ã¯ãã®å ã«ãªããããã®ããã«ããã®ã¡ãœãããè¿ããã»ããã¯ããªããžã§ã¯ãã®åäžæ§ã§ãªããåç §ã®åäžæ§ãšããŠãèŠçŽ ã®åäžæ§ãå®çŸ©ããŸãã ãã®ããšã¯ããªããžã§ã¯ãã®containsãremoveãcontainsAllãequalsãããã³hashCodeã¡ãœããã®åäœã«åœ±é¿ãäžããŸãã
æå®ããããªããžã§ã¯ãããè¿ãããã»ãããšãŸã£ããåããªããžã§ã¯ãåç §ãå«ãã»ããã§ããå Žåã«ããããè¿ãããã»ããã®equalsã¡ãœããã¯trueãè¿ããŸãã ãã®ã¡ãœããã«ãã£ãŠè¿ãããã»ãããéåžžã®ã»ãããšæ¯èŒãããå ŽåãObject.equalsèŠçŽã®ã·ã³ã¡ããªãšç§»è¡ã®èŠä»¶ã«éåããå ŽåããããŸãã ãã ããObject.equalsèŠçŽã¯ããã®ã¡ãœããã«ãã£ãŠè¿ãããã»ããéã«ä¿æããããšãä¿èšŒãããŠããŸãã
è¿ãããã»ããã®hashCodeã¡ãœããã¯ãèŠçŽ ã®ããã·ã¥ã»ã³ãŒãã®åèšã§ã¯ãªããã»ããå ã®èŠçŽ ã®ã¢ã€ãã³ãã£ãã£ã»ããã·ã¥ã³ãŒãã®åèšãè¿ããŸãã ããã¯ããã®ã¡ãœãããè¿ããè€æ°ã®ã»ããã«ãObject.hashCodeã¡ãœããã®äžè¬èŠçŽãé©çšããããã«ãequalsã¡ãœããã®ã»ãã³ãã£ãã¯ã¹ã®å€æŽã«ãã£ãŠèŠæ±ãããŸãã
keySetãã€ã³ã¿ãã§ãŒã¹Map<K,V>keySetãã¯ã©ã¹AbstractMap<K,V>Object.equals(Object), System.identityHashCode(Object)public Collection<V> values()
Collectionãã¥ãŒãè¿ããŸãã ã³ã¬ã¯ã·ã§ã³ã¯ããããšé£åããŠããã®ã§ããããã«å¯Ÿãã倿Žã¯ã³ã¬ã¯ã·ã§ã³ã«åæ ããããŸãã³ã¬ã¯ã·ã§ã³ã«å¯Ÿãã倿Žã¯ãããã«åæ ãããŸãã ã³ã¬ã¯ã·ã§ã³ã®å埩åŠçäžã«ãããã倿Žãããå Žåã¯ãå埩åŠçã®çµæã¯å®çŸ©ãããŸããã ã³ã¬ã¯ã·ã§ã³ã¯èŠçŽ ã®åé€ããµããŒãããŸããIterator.removeãCollection.removeãremoveAllãretainAllãclearã®åã¡ãœããã䜿ã£ãŠå¯Ÿå¿ãããããã³ã°ããããããåé€ããŸãã addãŸãã¯addAllã¡ãœããã¯ãµããŒãããŠããŸããã
ãã®ã¡ãœãããè¿ãããªããžã§ã¯ãããCollectionã€ã³ã¿ãã§ãŒã¹ãå®è£ ããŠããéããªããžã§ã¯ãã¯ãCollectionã®äžè¬èŠçŽã«ã¯åŸããŸããã ãªããžã§ã¯ãã®å ã«ãªããããã®ããã«ããã®ã¡ãœãããè¿ãã³ã¬ã¯ã·ã§ã³ã¯ããªããžã§ã¯ãã®åäžæ§ã§ãªããåç §ã®åäžæ§ãšããŠãèŠçŽ ã®åäžæ§ãå®çŸ©ããŸãã ãã®ããšã¯ããªããžã§ã¯ãã®containsãremoveãããã³containsAllã¡ãœããã®åäœã«åœ±é¿ãäžããŸãã
public Set<Map.Entry<K,V>> entrySet()
Setãã¥ãŒãè¿ããŸãã è¿ãããã»ããå
ã®åèŠçŽ ã¯åç
§åäžæ§ããŒã¹ã®Map.Entryã§ãã ã»ããã¯ããããšé£åããŠããã®ã§ããããã«å¯Ÿãã倿Žã¯ã»ããã«åæ ããããŸããã»ããã«å¯Ÿãã倿Žã¯ãããã«åæ ãããŸãã ã»ããã®å埩åŠçäžã«ãããã倿Žãããå Žåã¯ãå埩åŠçã®çµæã¯å®çŸ©ãããŸããã ã»ããã¯èŠçŽ ã®åé€ããµããŒãããŸããIterator.removeãSet.removeãremoveAllãretainAllãclearã®åã¡ãœããã䜿ã£ãŠå¯Ÿå¿ãããããã³ã°ããããããåé€ããŸãã addãŸãã¯addAllã¡ãœããã¯ãµããŒãããŠããŸããã
å ãšãªããããã®ããã«ããã®ã¡ãœããã«ãã£ãŠè¿ãããã»ããå ã®Map.Entryãªããžã§ã¯ãã¯ããªããžã§ã¯ãã®åäžæ§ã§ãªããåç §ã®åäžæ§ãšããŠãããŒãšå€ã®åäžæ§ãå®çŸ©ããŸãã ããã¯ãMap.Entryãªããžã§ã¯ãã®equalsããã³hashCodeã¡ãœããã®åäœã«åœ±é¿ãäžããŸãã åç §åäžæ§ããŒã¹ã®Map.Entry eã¯ãoãMap.Entryããã³e.getKey()==o.getKey()&& e.getValue()==o.getValue()ã§ããå Žåã«ãããoãªããžã§ã¯ãã«çãããªããŸãã ããããçããã»ãã³ãã£ãã¯ã¹ã«å¯Ÿå¿ããããã«ãhashCodeã¡ãœããã¯ãSystem.identityHashCode(e.getKey())^System.identityHashCode(e.getValue())ãè¿ããŸãã
ã»ããã®ãšã³ããªãéåžžã®ãããã»ãšã³ããªãšæ¯èŒããå ŽåããŸãã¯ããã®ã¡ãœãããè¿ããã»ãããéåžžã®ãããã»ãšã³ããª(éåžžã®ãããã«ãã®ã¡ãœãããåŒã³åºãããšã§è¿ãããŠãã)ã®ã»ãããšæ¯èŒããå Žåã«ããã®ã¡ãœããã«ãã£ãŠè¿ãããã»ããå
ã®ãMap.Entryã€ã³ã¹ã¿ã³ã¹ã®åç
§åäžæ§ããŒã¹ã®ã»ãã³ãã£ãã¯ã¹ã«ãã£ãŠãObject.equals(Object)èŠçŽã®ã·ã³ã¡ããªãšç§»è¡ã®èŠä»¶ã«éåã§ããŸãã ãã ããObject.equalsèŠçŽã¯ãè€æ°ã®ã¢ã€ãã³ãã£ãã£ã»ããŒã¹ã®ãããã»ãšã³ããªãããã³ãã®ãããªãšã³ããªã®è€æ°ã®ã»ããéã«ä¿æããããšãä¿èšŒãããŠããŸãã
public void forEach(BiConsumer<? super K,? super V> action)
Mappublic void replaceAll(BiFunction<? super K,? super V,? extends V> function)
MapreplaceAllãã€ã³ã¿ãã§ãŒã¹Map<K,V>function - åãšã³ããªã«é©çšãã颿° ãã°ãŸãã¯æ©èœãéä¿¡
詳现ãªAPIãªãã¡ã¬ã³ã¹ããã³éçºè
ããã¥ã¡ã³ãã«ã€ããŠã¯ãJava SEã®ããã¥ã¡ã³ããåç
§ããŠãã ããã ãã®ããã¥ã¡ã³ãã«ã¯ãæŠå¿µçãªæŠèŠãçšèªã®å®çŸ©ãåé¿æ¹æ³ãæå¹ãªã³ãŒãäŸãªã©ã®ãéçºè
ã察象ã«ãããã詳现ãªèª¬æãå«ãŸããŠããŸãã
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyãåç
§ããŠãã ããã