标签: sortedmap

NavigableMap 的 floorEntry() 方法的时间复杂度是多少?

如果我NavigableMap已经形成了。floorEntry()执行操作所需的时间是多少?会是O(1)还是O(logn)

例如:

如果我有NavigableMapn 个间隔,并且我使用map.floorEntry(k)一些 random k,那么执行操作的时间复杂度是多少?

java sortedmap

6
推荐指数
1
解决办法
2807
查看次数

Java:SortedMap,TreeMap,Comparable?如何使用?

我有一个对象列表,我需要根据其中一个字段的属性进行排序.我听说SortedMap和Comparators是最好的方法.

  1. 我是否对我正在排序的类实现Comparable,还是创建一个新类?
  2. 如何实例化SortedMap并传入Comparator?
  3. 排序如何工作?在插入新对象时它会自动对所有内容进行排序吗?

编辑: 这段代码给我一个错误:

private TreeMap<Ktr> collection = new TreeMap<Ktr>();
Run Code Online (Sandbox Code Playgroud)

(Ktr实施Comparator<Ktr>).Eclipse说它期待类似的东西TreeMap<K, V>,所以我提供的参数数量不正确.

java interface treemap comparator sortedmap

5
推荐指数
1
解决办法
4万
查看次数

5
推荐指数
1
解决办法
3413
查看次数

如何使用预先排序的数据初始化TreeMap?

我的应用程序使用TreeMap来保持数据排序并具有log(n)查找和插入.这在应用程序运行时的一般情况下效果很好,但是当应用程序首次启动时,我需要初始化具有数百万个long的TreeMap,我按排序顺序(升序).

由于这些初始化值已经排序,有没有办法将它们插入TreeMap而不支付树插入和重新平衡的log(n)成本?

java initialization treemap sortedmap insertion

5
推荐指数
1
解决办法
1883
查看次数

Java的.按值排序地图

可能重复:
如何在Java中的值上对Map <Key,Value>进行排序?

我需要像TreeMap一样排序的地图,但按值排序.我的地图将是巨大的,所以我不能随时对我的地图进行排序.是否存在解决此问题的好方案?也许存在符合此要求的外部罐子?

java treemap sortedmap

5
推荐指数
1
解决办法
8233
查看次数

在scala中从Iterator创建SortedMap

我有一个val it:Iterator[(A,B)],我想SortedMap[A,B]用我得到的元素创建一个Iterator.我现在这样做的方式是:

val map = SortedMap[A,B]() ++ it
Run Code Online (Sandbox Code Playgroud)

它工作正常,但使用感觉有点尴尬.我检查了SortedMap文档,但找不到更优雅的东西.是否有类似的东西:

 it.toSortedMap 
Run Code Online (Sandbox Code Playgroud)

要么

SortedMap.from(it)
Run Code Online (Sandbox Code Playgroud)

在标准的Scala库中,我可能错过了?

编辑:混合来自@ Rex答案的两个想法我想出了这个:

SortedMap(it.to:_*)
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,并避免必须指定类型签名SortedMap.虽然看起来仍然很有趣,但欢迎进一步的答案.

collections scala sortedmap

5
推荐指数
1
解决办法
1143
查看次数

HashMap 和 SortedMap 中 equals() 的复杂性

我试图找出 Java 中 HashMap 和 TreeMap 中 equals() 的计算复杂度。现在,您可能会说它在两种情况下都应该相同,因为 HashMap 和 TreeMap 都从 AbstractMap 继承了相同的实现。但是,在我完全接受之前,我需要一些解释。

这就是让我困惑的地方。AbstractMap 文档中覆盖的 equals() 的部分解释是:

更正式地说,如果 m1.entrySet().equals(m2.entrySet()),则两个映射 m1 和 m2 表示相同的映射。

文档不清楚 entrySet 返回的集合是 HashSet 还是 SortedSet 或其他东西。在我看来,了解这一点很重要,因为它会影响整体分析。

如果 entrySet() 返回的集合是 HashSet 类型,那么两个集合可以在 O(n) 中进行比较[在两个散列集合的情况下相等的成本]。但是,如果它们是 SortedSet 类型,那么它们可以在 O(nlogn) 中进行比较 [在两个排序集的情况下相等的成本]。因此,在 HashMap 的情况下 equals() 的复杂性在 SortedMap 的情况下会有所不同,或者至少它应该基于我的推理。

我强烈怀疑我的推理中的某个地方是错误的,所以请随时告诉我我错在哪里。什么是正确的推理。而且,最后我对 HashMap 和 SortedMap 的 equals() 的复杂性感兴趣。谢谢。

java equals hashmap asymptotic-complexity sortedmap

5
推荐指数
1
解决办法
2028
查看次数

如何从 TreeMap 中获取第 n 项?

我有一个TreeMap<Date, Integer>,我想从该地图中获取第n个项目。我现在想到的是:

((Integer)myTreeMap.values().toArray()[index]).intValue();
Run Code Online (Sandbox Code Playgroud)

但这感觉很笨重,更不用说堆上或性能上发生了什么?

有没有一种简洁的方法可以从/获取第n项?TreeMapSortedMap

java treemap sortedmap

5
推荐指数
1
解决办法
5487
查看次数

使用运算符的Kotlin Map

开始与Kotlin一起玩周末并试图让地图与运营商合作.不知怎的,Kotlin告诉我,我对它的含糊不清感到困惑.

这是有效的代码(在语法上不像我想要的那样):

var columns = sortedMapOf("a" to 1, "b" to 2)
columns.plusAssign("c" to 3)
Run Code Online (Sandbox Code Playgroud)

这里的代码根本不编译(但语法上更接近我想要的)

var cs = sortedMapOf(1 to "a", 2 to "b")
cs += Pair(3, "c")
Run Code Online (Sandbox Code Playgroud)

我错过了什么速记操作员魔术/铸造?

提前致谢.

sortedmap kotlin

4
推荐指数
1
解决办法
837
查看次数

为什么 Kotlins SortedMap 没有 .forEachIndexed() 函数?

KotlinsSortedMap是“一个进一步提供其键上的总排序的映射”。

因此,它应该是可索引的。但是这个扩展不存在

`sortedMap.forEachIndexed()`
Run Code Online (Sandbox Code Playgroud)

为什么不?我是否忽略了什么?是性能原因吗?没有人打扰吗?

(是的,我知道,我可以使用 List<Pair<Key, Value>>,但这对于我的用例来说并不像“直观”结构,地图更适合)

dictionary sortedmap kotlin

4
推荐指数
1
解决办法
1111
查看次数