java - 如果将 TreeMap 作为 Map 传递给它,Treemap 会使用吗

标签 java sorting hashmap

我们在一个方法中定义了一个新的 TreeMap 并将其传递给另一个方法:

TreeMap aTreeMap = new TreeMap();
//call another method to doSomething with map
doSomeThing(aTreeMap)

doSomething() 如下:

 doSomething(Map aMap){  
    //Make a new copy of
    TreeMap aTreeMap = new TreeMap(aMap);    
}

新的TreeMap会对数据进行resort吗?!

最佳答案

查看 TreeMapgrepcode.com 上的实现, 它有这些构造函数(以及其他构造函数):

public TreeMap(Map<? extends K, ? extends V> m) {
    comparator = null;
    putAll(m);
}

public TreeMap(SortedMap<K, ? extends V> m) {
    comparator = m.comparator();
    try {
        buildFromSorted(m.size(), m.entrySet().iterator(), null, null);
    } catch (java.io.IOException cannotHappen) {
    } catch (ClassNotFoundException cannotHappen) {
    }
}

因此,当您从 MapSortedMap(例如另一个 TreeMap)。如果是后者,则不会重新排序。

关于java - 如果将 TreeMap 作为 Map 传递给它,Treemap 会使用吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35752149/

相关文章:

swift 2.0 : sort instead of sorted function

c++ - 在 C++ 中实现归并排序

java - 从另一个类访问 HashMap 数据时出现问题

java - 帮助java HashMap

java - Android AlarmManager 每天下午 3 点运行

java - android studio 3.1 每次rebuild project 看变化

java - 在不知道图像名称的情况下将图像读入 ArrayList

java - 访问 Java 类的静态字段时出现问题

c# - 大集合Server和Path的排序算法

java - 发送更改的 hashmap 但使用 ObjectOutputStream 和 ObjectInputStream 获得相同的 hashmap