Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hashmap:交换两个值?_Java_Hashmap_Swap - Fatal编程技术网

Java Hashmap:交换两个值?

Java Hashmap:交换两个值?,java,hashmap,swap,Java,Hashmap,Swap,我可以交换Hashmap的两个值的键吗,或者我需要做一些聪明的事情吗 看起来像这样的东西: Map.Entry<Integer, String> prev = null; for (Map.Entry<Integer, String> entry: collection.entrySet()) { if (prev != null) { if (entry.isBefore(prev)) {

我可以交换Hashmap的两个值的键吗,或者我需要做一些聪明的事情吗

看起来像这样的东西:

    Map.Entry<Integer, String> prev = null;
    for (Map.Entry<Integer, String> entry: collection.entrySet()) {
        if (prev != null) {
            if (entry.isBefore(prev)) {
                entry.swapWith(prev)
            }
        }
        prev = entry;
    }
Map.Entry prev=null;
对于(Map.Entry:collection.entrySet()){
如果(上一个!=null){
如果(条目.isBefore(上一个)){
条目。swapWith(上一个)
}
}
prev=输入;
}

好吧,如果你只是在一张地图上点了钥匙,那就用一张


就我个人而言,我会选择一个
SortedMap

好吧,如果你只是想要一个键被排序的地图,那就用一个


就我个人而言,我只想使用一个
分类地图

地图
条目
界面中没有类似的功能,但实现起来非常简单:

    Map.Entry<Integer, String> prev = null;
    for (Map.Entry<Integer, String> entry: collection.entrySet()) {
            if (prev != null) {
                    if (entry.isBefore(prev)) {
                            swapValues(e, prev);
                    }
            }
            prev = entry;
    }

    private static <V> void swapValues(Map.Entry<?, V> first, Map.Entry<?, V> second)
    {
            first.setValue(second.setValue(first.getValue()));
    }
Map.Entry prev=null;
对于(Map.Entry:collection.entrySet()){
如果(上一个!=null){
如果(条目.isBefore(上一个)){
SwapValue(e、prev);
}
}
prev=输入;
}

私有静态void swapvalue(Map.Entry在
Map
Entry
接口中没有类似的功能,但实现起来非常简单:

    Map.Entry<Integer, String> prev = null;
    for (Map.Entry<Integer, String> entry: collection.entrySet()) {
            if (prev != null) {
                    if (entry.isBefore(prev)) {
                            swapValues(e, prev);
                    }
            }
            prev = entry;
    }

    private static <V> void swapValues(Map.Entry<?, V> first, Map.Entry<?, V> second)
    {
            first.setValue(second.setValue(first.getValue()));
    }
Map.Entry prev=null;
对于(Map.Entry:collection.entrySet()){
如果(上一个!=null){
如果(条目.isBefore(上一个)){
SwapValue(e、prev);
}
}
prev=输入;
}

私有静态void swapvalue(Map.Entry我正在尝试根据特定算法对字符串值进行排序。然后编写一个可比较的接口并将其传递给映射的构造函数。实际上,如果您尝试对字符串值进行排序,那么您需要的是一个映射。我正在尝试根据特定算法对字符串值进行排序。然后编写一个可比较的接口rface并将其传递给映射的构造函数。请参阅,实际上,如果您试图对字符串值进行排序,那么您需要的是一个映射。您是否尝试使用键对一组项进行排序?只需使用树形图,并提供一个比较器或覆盖等于和比较器。这可能需要更多的解释。int是什么eger键?它们是否强制执行某种顺序?如果是这样,并且如果您是基于字符串值排序的,为什么不使用列表来代替?或者该键是否具有其他含义?您是否尝试使用键对一组项目进行排序?只需使用树形图来代替,或者提供一个比较器或覆盖等于和比较器。这可能需要一点时间更多解释。什么是整数键?它们是否强制执行某种顺序?如果是,并且如果您是基于字符串值排序,为什么不使用列表?或者该键是否具有其他含义?
    Map.Entry<Integer, String> prev = null;
    for (Map.Entry<Integer, String> entry: collection.entrySet()) {
            if (prev != null) {
                    if (entry.isBefore(prev)) {
                            swapValues(e, prev);
                    }
            }
            prev = entry;
    }

    private static <V> void swapValues(Map.Entry<?, V> first, Map.Entry<?, V> second)
    {
            first.setValue(second.setValue(first.getValue()));
    }