# Java 难题 – TreeMap 的放置操作

> 原文： [https://howtodoinjava.com/puzzles/java-puzzle-treemap-put-operation/](https://howtodoinjava.com/puzzles/java-puzzle-treemap-put-operation/)

**难题：**我提供了以下映射，其中包含以下选项，

```java
Map map = new TreeMap();
map.put("test key 1", "test value 1");
map.put("test key 2", "test value 2");
map.put("test key 3", "test value 3");

System.out.println(map.put("test key 3", "test value 3"));
System.out.println(map.put("test key 4", "test value 4"));
```

**选项 A）** System.out.println（map.put（“测试键 3”，“测试值 3”）））;
**答案）**将输出打印为=测试值 3

**选项 B）** System.out.println（map.put（“测试键 4”，“测试值 4”）））;
**答案）**这将输出打印为= null;

谁能解释为什么选项 b 赋予我们这种行为？

另外，当我在 Option B sysout 语句后打印映射时，是否有测试键 4？

**解决方案：**如果查看`Map.put()`操作，则在映射中已经存在键的情况下，**返回该值。**

添加键“测试键 3”后，再次尝试添加键时，它将返回值“测试值 3”。

首次添加“测试键 4”时，它在映射中不存在，因此映射返回值是 null。

下次存储“测试键 4”时，该时间条目已经存在，因此将值返回为“测试值 4”

**祝您学习愉快！**