A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑小二 中级黑马   /  2016-5-30 16:41  /  3550 人查看  /  18 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

5黑马币
怎样在Map集合中修改一个键或者一个值??

最佳答案

查看完整内容

Map 就是存放键值对的集合类,和 json 对象差不多。以下是Map的中的一些方法: 以下是Map中部分方法: get(Object key)是根据参数key获取对应的value; 修改一个键可以通过以下方式: 如果可以请采纳,如有疑问请继续提问,可以把黑马币给我吗?我需要攒够25个技术分,谢谢!

18 个回复

倒序浏览
Map 就是存放键值对的集合类,和 json 对象差不多。以下是Map的中的一些方法:

以下是Map中部分方法:
get(Object key)是根据参数key获取对应的value;
修改一个键可以通过以下方式:
  1. public class Test1 {
  2.         public static void main(String[] args) {
  3.                 Map m = new HashMap<String,Object>();
  4.                 m.put("key", "I'm key one!");        //放入一条键值对
  5.                 /*        修改一个键
  6.                  *         1.获取该key对应的value
  7.                  *         2.移除该条数据
  8.                  *         3.添加一条数据,重新指定key并把原来的value对应在新的key中
  9.                  */
  10.                 Object o = m.get("key");
  11.                 m.remove("key");
  12.                 m.put("newKey", o);
  13.                
  14.                
  15.                 /* 修改一个值
  16.                  * 方法1:remove再put
  17.                  * 方法2:直接put,但要保持key一致,因为后put的数据会取代原来put的内容(如果key一致)
  18.                  */
  19.                 m.put("newKey","ssss");
  20.                 for(Object keys : m.keySet()) {
  21.                         System.out.println("key="+ (String)keys + " values=" + m.get(keys));
  22.                 }
  23.         }
  24. }
复制代码


如果可以请采纳,如有疑问请继续提问,可以把黑马币给我吗?我需要攒够25个技术分,谢谢!
回复 使用道具 举报
map集合修改值很简单, 直接map.put(key, newValue);直接覆盖原值
map集合修改键:map.put(newKey, map.get(key));   map.remove(key) // 加入新的,删除旧的
回复 使用道具 举报
sishuidliunian 发表于 2016-5-30 17:03
map集合修改值很简单, 直接map.put(key, newValue);直接覆盖原值
map集合修改键:map.put(newKey, map.get ...

yes,我也是会这么做的
回复 使用道具 举报
map集合修改值很简单, 直接map.put(key, newValue);直接覆盖原值
map集合修改键:map.put(newKey, map.get(key));   map.remove(key) // 加入新的,删除旧的
回复 使用道具 举报
这个,,应该挺简单吧
回复 使用道具 举报
细节是成功妻子 发表于 2016-6-2 06:48
map集合修改值很简单, 直接map.put(key, newValue);直接覆盖原值
map集合修改键:map.put(newKey, map.ge ...

是啊,我也是这样做的
回复 使用道具 举报
细节是成功妻子 发表于 2016-6-2 06:48
map集合修改值很简单, 直接map.put(key, newValue);直接覆盖原值
map集合修改键:map.put(newKey, map.ge ...

是啊,我也是这样想的
回复 使用道具 举报
直接put(key,value),如果key相同的话,会覆盖原来的键值对,若果key不相同,那么remonv之前的键值对好
回复 使用道具 举报

map集合修改值很简单, 直接map.put(key, newValue);就可以覆盖原值
map集合修改键:map.put(newKey, map.get(key));  
map.remove(key)
回复 使用道具 举报
爱逗猫的鱼 来自手机 初级黑马 2016-6-22 01:05:29
11#
楼上说的都是对的啊,怎么还未解决。map里面的put方法可以添加或覆盖原值。
回复 使用道具 举报
楼上全是正解- -。。
回复 使用道具 举报
一般都是直接覆盖
回复 使用道具 举报
通过put修改,覆盖数据的效果
回复 使用道具 举报
直接put(key,value),如果key相同的话,会覆盖原来的键值对,若果key不相同,那么remonv之前的键值对好了
回复 使用道具 举报
  1. import java.util.*;

  2. public class Demo2 {

  3.         public static void main(String[] args) {

  4.                 int count = 1;
  5.                 Map<String, String> map = new HashMap<String, String>();// 建立map对象
  6.                 map.put("k1", "value1"); // 在 map 中添加键值对
  7.                 map.put("k2", "value2");
  8.                 map.put("k3", "value3");

  9.                 // 循环遍历 map 集合
  10.                 for (Map.Entry<String, String> entry : map.entrySet()) {
  11.                         System.out.println("第" + (count++) + "个键值对:" + entry.getKey()
  12.                                         + " : " + entry.getValue());
  13.                 }
  14.                 System.out.println();

  15.                 System.out.println("修改k2键为kk");
  16.                 // 修改键。例如把键“k2”改为“kk”,值不变的情况
  17.                 map.put("kk", map.get("k2")); // 添加新键
  18.                 map.remove("k2"); // 删除“k2”键值对
  19.                 for (Map.Entry<String, String> entry : map.entrySet()) { // 打印输出
  20.                         System.out.println("第" + (count++) + "个键值对:" + entry.getKey()
  21.                                         + " : " + entry.getValue());
  22.                 }
  23.                 System.out.println();

  24.                 System.out.println("修改k3值为33");
  25.                 // 修改值。例如把“k3”的值“value3”修改为“33”
  26.                 map.put("k3", "33"); // 直接覆盖原来的键值对
  27.                 for (Map.Entry<String, String> entry : map.entrySet()) { // 打印输出
  28.                         System.out.println("第" + (count++) + "个键值对:" + entry.getKey()
  29.                                         + " : " + entry.getValue());
  30.                 }

  31.         }
  32. }
复制代码


楼上的解释很详细的,为什么问题还没有解决呢? 这个是我根据自己的理解做的,可以参考下。
祝好运, {:3_56:}
回复 使用道具 举报
936994215 发表于 2016-7-3 19:27
Map 就是存放键值对的集合类,和 json 对象差不多。以下是Map的中的一些方法:

以下是Map中部分方法:

代码的思路值得学习,又涨知识了!{:3_57:}
回复 使用道具 举报


PS:采用这种下面输出方式亦可(图片中显示)。

回复 使用道具 举报
谢谢!解决了只是好久没登录了!谢谢大家的解答!一时糊涂啊!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马