如何交换地图中的两个键

发布于 2024-10-12 00:23:34 字数 92 浏览 7 评论 0原文

有没有办法在Java中交换地图中的两个键?

前任。对于列表,有 Collections.swap(ArrayList,1,2);

Is there a way to swap two keys in a map in Java?

ex. for list there is Collections.swap(ArrayList,1,2);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

谜泪 2024-10-19 00:23:34

您可以使用这一衬垫:

map.put('a', map.put('b', map.get('a')));

You can use this one liner:

map.put('a', map.put('b', map.get('a')));
七颜 2024-10-19 00:23:34

如果您需要处理边界情况,例如其中一个键实际上不在地图中,您可以执行以下操作:

public static <K,V> void swap(Map<K, V> map, K k1, K k2) {
    if (map.containsKey(k1)){
        if (map.containsKey(k2)){
            map.put(k1, map.put(k2, map.get(k1)));
        } else {
            map.put(k2, map.remove(k1));
        }
    } else if (map.containsKey(k2)){
        map.put(k1, map.remove(k2));
    }
}

否则,请使用 Abdullah Jibaly 答案中的在线内容。

If you need to handle boundary cases, like one of the keys not actually being in the map, you can do something like this:

public static <K,V> void swap(Map<K, V> map, K k1, K k2) {
    if (map.containsKey(k1)){
        if (map.containsKey(k2)){
            map.put(k1, map.put(k2, map.get(k1)));
        } else {
            map.put(k2, map.remove(k1));
        }
    } else if (map.containsKey(k2)){
        map.put(k1, map.remove(k2));
    }
}

Otherwise, use the on-liner in Abdullah Jibaly's answer.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文