我们在一个方法中定义了一个新的 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吗?!
最佳答案
查看 TreeMap
在 grepcode.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) {
}
}
因此,当您从 Map
或 SortedMap
(例如另一个 TreeMap
)。如果是后者,则不会重新排序。
关于java - 如果将 TreeMap 作为 Map 传递给它,Treemap 会使用吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35752149/