问题标签 [treeset]

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

java - 如何从 TreeSet 打印对象

我想打印存储在 TreeSet 中的对象的实例变量。

因此,给定一个具有三个实例变量的对象,我想遍历 TreeSet 中的对象并打印它们的 ivars,但是:

让我得到第一个对象的 ivar1 和第二个对象的 ivar2。通过我的所有搜索,我发现在将迭代器移动到下一个对象之前无法打印一个对象的所有 ivars,例如:

关于如何实施的任何想法?

提前致谢!=)

0 投票
2 回答
2688 浏览

equals - Java TreeSet 不存储唯一值

我有一个名为 Artifacts 的对象 TreeSet。我已经覆盖了对象中的等号和哈希码方法,如下所示:

我已经将打印放在 equals 方法中,但它从未被调用过。我已经用一个如下所示的比较器实例化了 TreeSet:

我已经读过 TreeSet 基于 equals 覆盖建立它的唯一性。

我在 TreeSet 中看到多个具有相同 ArtifactId 的对象,这不像我需要的那样唯一。

我的等号和哈希码方法中是否缺少某些内容?

0 投票
2 回答
4469 浏览

java - java.util.TreeSet的tailSet操作的时间复杂度是多少?

我正在使用扫描线实现 2D 最接近对算法,它说您需要找到某个 y 坐标上方的六个点。我所做的是将点放入按 y 坐标排序的 TreeSet 中,并使用 tailSet 方法获取某个点以上的所有点,并迭代最多 6 次。

我想知道tailSet操作的复杂度是否为O(log n),如果是,是否最多迭代tailSet六次也是O(log n)?

参考: http: //people.scs.carleton.ca/~michiel/lecturenotes/ALGGEOM/sweepclosestpair.pdf

0 投票
1 回答
1002 浏览

java - 在 TreeSet 中查找相等元素

我正在开发一些元素的历史视图。每个元素都有一个开始和结束日期。期间可能不重叠,因此每个开始日期必须等于或晚于其前任的结束日期。如果结束日期为空,则元素从其开始日期一直处于活动状态,直到已知结束日期为止。

出于测试目的,我创建了这个类:

我使用 TreeSet 对元素进行排序。现在我遇到的问题是我无法获得当前活动或第一个到来的元素。

查看 JavaDoc 天花板方法应该可以解决问题:

返回此集合中大于或等于给定元素的最小元素,如果没有这样的元素,则返回 null。

但是,这不起作用。

在一个测试用例中,我创建了一个带有一堆条目的 TreeSet:

然后我使用以下代码获得天花板:

我期望的结果是开始 5 和结束 7 的条目(“相等”条目)。然而,结果是开始 7 和结束 9 的条目(更大的条目)。两个结果都等于或大于给定元素。但由于 JavaDoc 提到它返回最少的元素,我希望 5-7 条目。

0 投票
1 回答
3822 浏览

java - Hibernate ConstraintViolationException:无法删除 Child 的 SortedSet 集合

我有以下两个类:(Claim父)和ClaimInsurance(子)。它们如下:

和:

当我尝试删除Claim它时,它会给出以下异常

当我如下更改类中的claimInsurances映射时Claim,一切正常:

似乎问题是当我在映射中使用Set( HashSet) 时它可以工作,但如果我改为使用SortedSet( TreeSet) 则会出错。

实际问题可能是什么?我错过了什么?

0 投票
1 回答
2114 浏览

java - 用 Java 创建一个高分屏幕

我正在尝试为我正在开发的游戏创建一个高分屏幕。我希望显示以前玩家的前十名以及刚刚完成游戏的玩家的分数以及他们的排名(在高分列表中的顺序)。这个高分列表将根据他们的分数排序,如果分数相同,则按照他们的名字排序。我已经尝试过ArrayListsTreeSets做到这一点。我能够同时获得这两种数据以相应地对数据进行排序,但无法为刚刚完成游戏的玩家提取特定信息。

我查看了地图,但似乎它们不适用于我希望对数据进行排序的方式。有人可以指导我解决这个问题吗?

这是我为其中一个制作的一个小程序:

我想检查c1c2的位置,并将其与它们的和TreeSet一起显示。nameage

0 投票
4 回答
20051 浏览

java - TreeSet internally uses TreeMap, so is it required to implement Hashcode method when using Treeset?

I would like to know what it means when javadocs for TreeSet says

This class implements the Set interface, backed by a TreeMap instance?

In the below example, I haven't implemented the Hashcode method and still it is working as per expectation i.e it is able to sort the objects. Notice that I have purposely not implemented a consistent Equals implementation to check the TreeSet behaviour.

This example prints [Tom Ben, Tom jon, Tom Wik]. So it is sorting based on the compareTo method and hashcode() method looks insignificant in this scenario. However, Treeset is backed by TreeMap, so internally if TreeMap is used for sorting, how is TreeMap hashing the object?

0 投票
1 回答
2174 浏览

java - java树集抛出非法ArgumentException:键超出范围

我已经剥离了代码以重现引发错误的示例:

代码的目的是在检索集合的子集时实现某种翻转。例如,在上述情况下,我想要从 c [exclusive] 到 b [inclusive] 的所有元素。我注意到,如果我注释掉 tailSet() 或 headSet() 行,其余代码运行良好。但是,当我有两条线时,我得到

java.lang.IllegalArgumentException:键超出范围

0 投票
3 回答
22836 浏览

java - 树集示例

为什么第三个对象没有被添加到这里的树集中,尽管它是一个不同的对象?

输出:

0 投票
3 回答
1341 浏览

java - 从那时起,用于优化获取和迭代的 Java 数据结构

我需要一个数据结构在 Log N 时间内执行 get / find 并从 get 操作返回的对象开始迭代。迭代器应该按照元素插入数据结构的相同顺序进行迭代。

我可以使用 TreeSet 实现这一点吗?还是其他数据结构?

谢谢!