问题标签 [sortedmap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1283 浏览

scala - 静态类型为 Map 时,Scala SortedMap.map 方法返回未排序的地图

我在使用 Scala 的 SortedMap[A,B] 时遇到了一些未经授权的奇怪现象。如果我声明对 SortedMap[A,B] "a" 的引用是 Map[A,B] 类型,那么对 "a" 的映射操作将产生一个未排序的映射实现。

例子:

上面的输出是:

class scala.collection.immutable.TreeMap: Map(a -> s, b -> t, c -> u, d -> v, e -> w, f -> x)
class scala.collection.immutable.HashMap$ HashTrieMap: Map(e -> w, f -> x, a -> s, b -> t, c -> u, d -> v)

身份转换前后键/值对的顺序不一样。

奇怪的是,从“a”中删除类型声明会使这个问题消失。这在一个玩具示例中很好,但会使 SortedMap[A,B] 无法用于传递给需要 Map[A,B] 参数的方法。

一般来说,我希望诸如“map”和“filter”之类的高阶函数不会改变它们所应用的集合的基本属性。

有谁知道为什么“地图”会这样?

0 投票
2 回答
1141 浏览

java - 在子串中对子串进行排序

我正在查看文件名日志以及它们在指定日期的最后修改时间。它的内容如下所示:

日志以单个字符串的形式给出,没有换行符。我想解析字符串以找到最近修改的文件,即在这种情况下具有最新日期,因此 file_02389.txt。每个“注释”的字符长度是恒定的,尽管假设将来可能会发生变化,并且如果同一文件被多次修改,文件名将不会是唯一的。

是否有一种最可扩展/可维护的方式来查找最新文件?执行时间和内存不是重要的因素。主要关注的是初学者程序员可以理解和使用代码。

我的第一个想法是将字符串拆分为可以使用自定义比较器排序的列表。我认为这很简单但不可扩展:

它可以工作,但使用取决于行长的子字符串和仅在这种情况下有用的比较器。我不喜欢使用 .split 然后不得不删除第一个条目,但如果可以的话,我想避免使用真实且难以理解的正则表达式。将日期视为字符串而不是作为整数或日期对象进行比较似乎不可取,但可以节省代码行。

我目前使用一个排序的地图,它避免创建一个具有随机数字的一次性比较器,但一个专门的地图对于我正在尝试做的事情来说似乎相当复杂。我仍然认为这比为文件名创建一个数组,为时间创建另一个数组,然后为复制时间创建第三个数组要好,这样可以对时间数组进行排序,并将其最后一个值与副本中的相应索引进行比较。

0 投票
3 回答
130516 浏览

java - Java TreeMap 比较器

我需要一个 TreeMap 的比较器。我应该在我的 TreeMap 的构造函数中匿名写这个吗?我怎么能写我的比较器。目前,Java 不喜欢我的代码(我可以匿名这样做吗?):

  1. 我可以匿名进行上述操作吗?
  2. 我还能怎么做?
  3. 我想按值而不是键对 myMap 进行排序
0 投票
3 回答
177 浏览

data-structures - Clojure:我有许多排序的映射,并且想要按顺序减少所有值的超级映射键 -> 向量

我已经看到了这一点,但无法弄清楚如何将它(不是双关语)应用于我的情况。

我有一个这样的地图排序列表:(注意地图中可以有两个以上的键)({name1 3,name2 7},{name1 35,name2 7},{name1 0,name2 3})

之后我所追求的是这个数据结构:

({:name1 [3,35,0]}, {:name2 [7,7,3]})

我已经为此苦苦挣扎了一段时间,似乎无法靠近。

警告:数据必须保持排序,我有 N 个关键字,而不仅仅是两个。

0 投票
4 回答
8746 浏览

java - 爪哇。按值排序的地图

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

我需要像 TreeMap 这样的排序地图,但按值排序。我的地图会很大,所以我不能在需要的时候对地图进行排序。有什么好的解决方案来解决这个问题吗?也许存在满足这个的外部罐子?

0 投票
3 回答
114 浏览

java - 如何在 Java 中编写 sortedMap 的 values() 方法?

我很好奇是否有人有关于如何开始编写values()实现 Javasortedmap接口的类的方法的提示。如果可能的话,示例代码将不胜感激。

0 投票
1 回答
360 浏览

jpa - Ecliplselink - @CascadeOnDelete 不适用于 @Customizer

我有两个实体。“价格”类将“CalculableValue”存储为 SortedMap 字段。为了支持排序地图,我编写了定制器。在那之后,@CascadeOnDelete 似乎不起作用。如果我从地图中删除 CalculableValue 实例,然后保存“价格”EclipseLink 只会将 calculableValues 表中的 priceId 列更新为 NULL ...

我真的很想保留 SortedMap。它有助于避免 Java 级别的值访问的大量日常工作。此外,CalculableValue 类中没有定义反向引用(ManyToOne),应用程序逻辑永远不需要它,因此,只想保持一种方式。

任何想法什么是解决这个问题的最佳方法?我实际上有很多其他这样的依赖关系,几乎所有东西都是 OneToMany 与存储在排序映射中的值的关系。

价格.java:

0 投票
1 回答
7907 浏览

java - 如何以相同的顺序遍历 SortedMap?

可以使用来自的迭代器来迭代 SortedMap myMap.entrySet().iterator()。但是这个迭代器是否保留了排序后的地图对象的顺序?

SortedMap 接口没有自己的方法来遍历条目。遍历条目的标准方法是什么?

0 投票
5 回答
30231 浏览

java - 使用 TreeMap 时 Java“无法转换为 Comparable”

可能重复:
Java:SortedMap、TreeMap、Comparable?如何使用?

我正在使用 Java JungI图形包和 Netbeans 7。我从 Java 收到以下错误:

这是与错误相关的代码:

MyVertex 类是我为图形制作的一个类。以下是 MyVertex 的代码

  1. 如何将 MyVertex 类型转换为 Comparables?
  2. 为什么这是必要的?(我没有立即看到原因)
0 投票
4 回答
1585 浏览

java - Java中TreeMap的迭代器返回错误

我有一个 TreeMap 定义如下:

当我尝试像这样迭代它时:

我收到错误消息,例如The method hasNext() is undefined for the type ObjToIntMap.Iterator on the 2nd line and Multiple markers at this line - Map.Entry 是原始类型。对泛型类型 Map.Entry 的引用应在第 3 行参数化。

此错误的根源是什么,我该如何解决?