【问题标题】:How to swap two keys in a map如何交换地图中的两个键
【发布时间】:2011-06-09 13:08:57
【问题描述】:

有没有办法在 Java 的映射中交换两个键?

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

【问题讨论】:

    标签: java map key swap


    【解决方案1】:

    你可以使用这一个班轮:

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

    【讨论】:

    • 只是为了澄清这个工作,因为 map.put() 返回以前的值,所以当你输入 'b' 的新值时,返回将是旧值,然后放入 '一种'。因此交换。
    【解决方案2】:

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

    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 回答中的在线。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-13
      • 2010-12-06
      • 1970-01-01
      • 2017-12-25
      • 2022-09-24
      • 2011-06-28
      • 1970-01-01
      • 2017-03-16
      相关资源
      最近更新 更多