CSDN-Ada助手 2023-05-24 10:47 采纳率: 1.6%
浏览 16
已结题

Dictionary的add添加键值时是复制还是和原来的变量有关联?_(语言-java)

该问题来自社区帖: https://bbs.csdn.net/topics/615500503.为符合问答规范, 该问题经过ChatGPT优化
Dictionary<string, PluginsInfo> dic = new Dictionary<string, PluginsInfo>();
PluginsInfo pluginsInfo = new PluginsInfo();
pluginsInfo.Name = "2222";
dic.Add("2", pluginsInfo);
MessageBox.Show("对象本身: " + ReferenceEquals(pluginsInfo, dic["2"]).ToString());
MessageBox.Show("对象的参数: " + ReferenceEquals(pluginsInfo.Name, dic["2"].Name).ToString());

Dictionary<string, DataCell> dic2 = new Dictionary<string, DataCell>();
DataCell data = new DataCell();
data.DataValue = "www";
dic2.Add("2", data);
MessageBox.Show("对象本身: " + ReferenceEquals(data, dic2["2"]).ToString());
MessageBox.Show("对象的参数: " + ReferenceEquals(data.DataValue, dic2["2"].DataValue).ToString());
  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-24 15:26
    关注
    • 以下回答由chatgpt基于相关博客总结生成:

      很抱歉,Java中的Dictionary类已经被废弃,在Java 1.2版本之后,使用Map代替了Dictionary类,Map是一个更通用的接口,提供类似于Dictionary类的键值映射,同时也支持更多的键值类型,例如字符串、对象等。但是不管是Dictionary还是Map,对于往其中添加键值的操作,都不是创建一个新的变量,而是与原有的变量产生关联。

      在Dictionary或Map中,添加键值的过程可以简述为以下几步:

      1. 创建一个键对象和一个值对象
      2. 使用键对象作为参数调用put方法,将值对象与键对象进行关联
      3. 如果之前已经存在了该键对象,put方法会将新的值对象与该键对象进行关联,并返回该键对象之前所关联的值对象
      4. 如果该键对象之前没有被关联任何值对象,则put方法会返回null

      以下是使用Java Map实现添加键值对的示例代码:

      Map<String, Integer> map = new HashMap<>(); // 创建一个Map对象
      map.put("apple", 10); // 添加键值对
      

      在这个示例中,首先创建了一个Map对象,然后通过put方法向其中添加一个键为"apple",值为10的键值对,此时"apple"和10这两个对象与这个Map对象产生了关联。如果再次调用put方法,使用"apple"这个键添加一个新的值,例如20,那么这时这个键"apple"和新的值20就会与之前的Map对象产生关联,而不是创建新的变量。

    评论

报告相同问题?

问题事件

  • 系统已结题 6月1日
  • 创建了问题 5月24日

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)