关于Map

Java内存引用与Map存储
本文通过一个简单的Java示例代码展示了如何使用Map存储Person对象的引用,并解释了当更新对象属性时,Map中存储的对象状态也会随之改变的原因。
Person p=new Person("黄雄");
Map map=new HashMap();
map.put("p", p);
p.setName("黄熊熊");
Person p1=(Person)map.get("p");

System.out.println(p1.getName());



输出的是黄熊熊,因为map里面存的是引用!p.setName("黄熊熊");导致引用变了。

`map` 函数是 Python 中的一个内置函数,用于将一个函数应用到可迭代对象(如列表、元组等)的每个元素上,并返回一个迭代器。它的语法如下: ```python map(function, iterable, ...) ``` - **`function`**: 要应用到每个元素上的函数。 - **`iterable`**: 一个或多个可迭代对象。 `map` 函数会依次将 `iterable` 中的每个元素传递给 `function`,并将结果作为迭代器返回。如果传递了多个可迭代对象,则每次会从每个可迭代对象中取出一个元素,作为参数传递给 `function`。 #### 示例代码: ```python # 示例 1:单个可迭代对象 def square(x): return x ** 2 numbers = [1, 2, 3, 4, 5] squares = map(square, numbers) print(list(squares)) # 输出: [1, 4, 9, 16, 25] # 示例 2:多个可迭代对象 def add(a, b): return a + b list1 = [1, 2, 3] list2 = [4, 5, 6] result = map(add, list1, list2) print(list(result)) # 输出: [5, 7, 9] ``` ### 给出解释: 1. **单个可迭代对象**:当只提供一个可迭代对象时,`map` 会将该对象的每个元素逐一传递给指定的函数。 2. **多个可迭代对象**:当提供多个可迭代对象时,`map` 会并行地从每个可迭代对象中取出一个元素,作为参数传递给函数。如果可迭代对象的长度不一致,则以最短的那个为准。 3. **惰性求值**:`map` 返回的是一个迭代器,只有在需要时才会生成结果。因此,通常需要使用 `list()` 或其他方法将其转换为具体的数据结构。 #### 注意事项: - 如果 `function` 参数为 `None`,则 `map` 会返回由可迭代对象中的元素组成的迭代器。 - 在 Python 3 中,`map` 返回的是一个迭代器,而不是列表。如果需要列表形式的结果,必须显式调用 `list()`。 ### 相关问题:
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值