【发布时间】:2021-03-04 02:13:13
【问题描述】:
大家。我有一个问题,当映射包含反转值时,我想删除映射中的键,代码如下:
Map<Integer, Integer> test = new HashMap<>();
test.put(0, 1);
test.put(1, 0);
test.put(2, 1);
test.put(3, 2);
在上面的代码中,您可以看到 0-1 和 1-0,但我只想在地图上存在一个,例如 0-1 或 1-0。因此,我必须删除一个或多个以仅在地图上保留一个。在这种情况下,结果应该类似于 0,1 和 2,1。我的意思是在这种情况下,结果在地图上保留了两个元素。谁能帮助我,我非常感谢。
【问题讨论】:
-
你想保留每一对中的哪一个? 'reseral' 是什么意思?
-
您的用例是什么?要实现,您几乎必须拥有一个包含每个映射方向的地图,就像现在一样。所以问题可能实际上是“我如何以这种方式使用这张地图。”
-
反转是指map中包含的key和value是否反转。如下数据:1,2; 2,1 在这种情况下,key 和 value 是相反的。只有一个保持,但没有具体。 1,2是正确的,2,1也是正确的
-
谢谢你的回答,其实我有一个问题但可能很难描述,所以我只是提取了我认为应该用这个映射问题解决的问题。
-
只遍历条目:对于每个条目,如果映射包含作为另一个键的值,则通过迭代器删除当前条目。
标签: java collections java-8 java-stream