課程
/后端開發(fā)
/Java
/Java入門第三季
Map中存放的數(shù)據(jù)能直接修改嗎,我看API中貌似Map接口中沒有提供這個方法呀
2017-01-09
源自:Java入門第三季 5-3
正在回答
不能,Map存放的是key-value的映射關(guān)系,并且多個key值可以對應(yīng)到同一個value。
如果你想對value直接修改會導(dǎo)致其他key指向的這個value都被改變,而違背了"Map只是存放key-value之間映射"的初衷,所以Map接口不會提供這樣的接口;而通過remove,再put操作實(shí)質(zhì)上是將原來的key對value的映射指向映射到新的value值的關(guān)系。
飛行烤鴨 提問者
方法摘要
?void ? ?clear() ??????????從此映射中移除所有映射關(guān)系(可選操作)。 ? ?
?boolean ? ?containsKey(Object?key) ??????????如果此映射包含指定鍵的映射關(guān)系,則返回 true。 ? ?
?boolean ? ?containsValue(Object?value) ??????????如果此映射將一個或多個鍵映射到指定值,則返回 true。 ? ?
?Set<Map.Entry<K,V>> ? ?entrySet() ??????????返回此映射中包含的映射關(guān)系的 Set 視圖。 ? ?
?boolean ? ?equals(Object?o) ??????????比較指定的對象與此映射是否相等。 ? ?
?V ? ?get(Object?key) ??????????返回指定鍵所映射的值;如果此映射不包含該鍵的映射關(guān)系,則返回 null。 ? ?
?int ? ?hashCode() ??????????返回此映射的哈希碼值。 ? ?
?boolean ? ?isEmpty() ??????????如果此映射未包含鍵-值映射關(guān)系,則返回 true。 ? ?
?Set<K> ? ?keySet() ??????????返回此映射中包含的鍵的 Set 視圖。 ? ?
?V ? ?put(K?key, V?value) ??????????將指定的值與此映射中的指定鍵關(guān)聯(lián)(可選操作)。 ? ?
?void ? ?putAll(Map<? extends K,? extends V>?m) ??????????從指定映射中將所有映射關(guān)系復(fù)制到此映射中(可選操作)。 ? ?
?V ? ?remove(Object?key) ??????????如果存在一個鍵的映射關(guān)系,則將其從此映射中移除(可選操作)。 ? ?
?int ? ?size() ??????????返回此映射中的鍵-值映射關(guān)系數(shù)。 ? ?
?Collection<V> ? ?values() ??????????返回此映射中包含的值的 Collection 視圖。 ? ?
舉報(bào)
Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧
3 回答修改map中映射時,能同時修改key和value值嗎?
2 回答修改map中對象
2 回答Map修改問題
2 回答關(guān)于Map刪除與修改
2 回答修改學(xué)生信息的話直接查找id是否存在就可以了吧
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2017-01-09
不能,Map存放的是key-value的映射關(guān)系,并且多個key值可以對應(yīng)到同一個value。
如果你想對value直接修改會導(dǎo)致其他key指向的這個value都被改變,而違背了"Map只是存放key-value之間映射"的初衷,所以Map接口不會提供這樣的接口;而通過remove,再put操作實(shí)質(zhì)上是將原來的key對value的映射指向映射到新的value值的關(guān)系。
2017-01-09
方法摘要
?void ? ?clear()
??????????從此映射中移除所有映射關(guān)系(可選操作)。 ? ?
?boolean ? ?containsKey(Object?key)
??????????如果此映射包含指定鍵的映射關(guān)系,則返回 true。 ? ?
?boolean ? ?containsValue(Object?value)
??????????如果此映射將一個或多個鍵映射到指定值,則返回 true。 ? ?
?Set<Map.Entry<K,V>> ? ?entrySet()
??????????返回此映射中包含的映射關(guān)系的 Set 視圖。 ? ?
?boolean ? ?equals(Object?o)
??????????比較指定的對象與此映射是否相等。 ? ?
?V ? ?get(Object?key)
??????????返回指定鍵所映射的值;如果此映射不包含該鍵的映射關(guān)系,則返回 null。 ? ?
?int ? ?hashCode()
??????????返回此映射的哈希碼值。 ? ?
?boolean ? ?isEmpty()
??????????如果此映射未包含鍵-值映射關(guān)系,則返回 true。 ? ?
?Set<K> ? ?keySet()
??????????返回此映射中包含的鍵的 Set 視圖。 ? ?
?V ? ?put(K?key, V?value)
??????????將指定的值與此映射中的指定鍵關(guān)聯(lián)(可選操作)。 ? ?
?void ? ?putAll(Map<? extends K,? extends V>?m)
??????????從指定映射中將所有映射關(guān)系復(fù)制到此映射中(可選操作)。 ? ?
?V ? ?remove(Object?key)
??????????如果存在一個鍵的映射關(guān)系,則將其從此映射中移除(可選操作)。 ? ?
?int ? ?size()
??????????返回此映射中的鍵-值映射關(guān)系數(shù)。 ? ?
?Collection<V> ? ?values()
??????????返回此映射中包含的值的 Collection 視圖。 ? ?