问题标签 [sortedset]

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 投票
7 回答
4498 浏览

java - 如何获取 SortedSet 的最后 25 个元素?

在 Java 中,我有一个 SortedSet,它可能有 100,000 个元素。我想高效优雅地获取最后 25 个元素。我有点疑惑。

为了获得25 个元素,我将迭代并在 25 个元素之后停止。但我不知道如何以相反的顺序迭代。有任何想法吗?

0 投票
5 回答
8141 浏览

java - Java SortedSet + Comparator,与equals()问题的一致性

我想要一个按集合大小排序的集合的 SortedSet(在这种情况下是集合本身,但不一定是一般情况)。这似乎违反了让 Comparator 与 equals() 一致的禁令——即,两个集合可能不相等(通过具有不同的元素),但比较相同的值(因为它们具有相同数量的元素)。

从概念上讲,我也可以使用比较器方法对大小相等的集合进行排序,但是使用排序不会利用这一点,并且没有真正有用+直观的方法来比较大小相等的集合(至少,在我的特殊情况下),所以这似乎是一种浪费。

这种不一致的情况似乎是个问题吗?

0 投票
1 回答
13374 浏览

c# - 添加到排序集及其复杂性

MSDN 声明以下SortedSet(T).Add 方法

如果 Count 小于内部数组的容量,则此方法是 O(1) 操作。

有人可以解释一下“怎么会”吗?我的意思是在添加新值时,我们需要找到一个正确的位置来添加一个值(将其与另一个值进行比较),并且内部实现看起来像一个具有 O (log N) 插入复杂度的“红黑树”。

0 投票
7 回答
28206 浏览

java - 在对象更改值时维护 TreeSet 排序

我有一个使用 Comparable<> 定义“自然排序顺序”的对象。这些存储在 TreeSets 中。

除了删除和重新添加对象之外,当用于定义排序顺序的成员更新时,是否有另一种方法来更新排序?

0 投票
4 回答
5505 浏览

java - 如何获取 SortedSet 的下一个元素?

我有一个 SortedSet 保存我的有序数据。

我使用该.first()方法返回第一条记录,并将其传递给另一个窗口。
当另一个窗口完成时,我得到一个调用事件,我想将下一个从 SortedSet 传递到窗口,那么如何移动到下一个元素?

然后我有这个:

我有什么选择?

0 投票
3 回答
6654 浏览

java - 如何从数组中添加到 SortedSet 项目?

我有一个这样定义的 SortedSet:

我有一个 RateMessage[] 数组

我不得不使用数组,因为该集合错过了序列化功能,现在我需要将其构造回来。

有没有一种快速的方法可以将数组中的所有项目再次添加到集合中?

0 投票
2 回答
4005 浏览

java - SortedSet、数组、可序列化的序列化问题

我在这个过程之前有这个:

然后在另一部分我有

为什么我得到 ClassCastException?

0 投票
3 回答
49359 浏览

java - 订购哈希集示例?

我需要一个关于如何在 a 上使用可比较类HashSet来获得升序的示例。假设我有一个HashSet这样的:

我怎样才能hs按升序排列?

0 投票
3 回答
1278 浏览

java - ConcurrentSkipListMap 排序:可以通过值的 compareTo 来完成吗?

在游戏中,我试图保留用户列表并按分数排序,以便我可以在任何给定时间查询列表并返回(例如)按分数排名前十的用户。这个列表应该是线程安全的。我设想使用 userName 字符串作为键,值将是实现 Comparable 并具有 displayName 和 score 等属性的 User 对象。因此,User 对象将具有一个 compareTo 方法,该方法将比较 score 属性以确定其位置。

我正在考虑为此使用 ConcurrentSkipListMap,但据我所知,Map(而不是 Set)使用 key 进行排序。我想让列表按 User 对象的 score 属性排序,但仍然使用 Map 因为我需要能够访问任何给定用户并从线程修改他们的 score 属性。

似乎使用我自己的 Comparator 作为密钥并不能解决我的问题,因为我怀疑我是否可以访问相关的值进行比较。我可以使用 ConcurrentSkipListSet 但访问列表以修改单个用户的分数将是(我想)一项昂贵的操作(由于每次都需要迭代)。

谁能建议如何做到这一点?

0 投票
0 回答
683 浏览

performance - 在 Hibernate 中映射 SortedSet 的性能价格是多少?

在我的一个映射类中,我有一个Set通过休眠映射到数据库的字段。我现在需要根据一些逻辑对这个集合进行排序,并将其写入一个新的Comparator实现中。我将字段类型更改为SortedSet,将此Comparator作为属性添加到我的休眠映射(XML,无注释),假设 Hibernate 从数据库中检索了所有对象,然后使用给定的Comparator.

一位同事提出了这里隐藏性能价格的可能性,因为 Hibernate 实际上使用插入排序,这意味着它会compare为它加载的每个对象多次调用该方法。这是真的?映射排序集合是否还有其他性能问题?