
大话西游666
简短回答用TreeMap..这正是它的目的。如果将此映射传递给您,并且无法确定类型,则可以执行以下操作:SortedSet keys = new TreeSet<>(map.keySet());for (String key : keys) {
String value = map.get(key);
// do something}这将按键的自然顺序在地图上迭代。较长答案从技术上讲,您可以使用任何实现SortedMap,但除了极少数情况外,这相当于TreeMap,就像使用Map实现通常相当于HashMap.如果您的键是一个复杂的类型,不能实现可比较的,或者您不想使用自然顺序TreeMap和TreeSet具有允许传入Comparator:// placed inline for the demonstration, but doesn't have to be a lambda expressionComparator comparator = (Foo o1, Foo o2) -> {
...
}SortedSet keys = new TreeSet<>(comparator);keys.addAll(map.keySet());使用TreeMap或TreeSet它将有不同的性能特征HashMap或HashSet..粗略地说,查找或插入元素的操作将从O(1)到O(原木(N).在.HashMap,从1000项移到10,000项并不会真正影响您查找元素的时间,但是对于TreeMap查找时间将慢3倍(假设日志)2)。从1000移动到100,000将是每一个元素查找速度的6倍。
1034

被折叠的 条评论
为什么被折叠?



