问题标签 [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 回答
1604 浏览

java - compareTo 和 TreeSet 的问题

我在使用 TreeSets 从我正在开发的游戏中删除一个单元时遇到问题。我正在制作一个塔防游戏,路径被分成设定长度的不同块。这些块知道其中的单元以及路径上的下一个块。当单元离开块的边界时,块将其从列表中删除并将其添加到下一个块。

我正在使用 TreeSet 来跟踪块中单元的顺序,这样我就可以知道哪个单元在路径上最远。这些单元有一个位置字段,可以跟踪它们沿路径的距离,位置越高,它们越远。

在我的一些块上,我注意到当它试图从其 TreeSet 中删除一个单元时,remove 返回 false。我使用了一些断点,我可以看到该单元实际上在 TreeSet 中,所以我认为我的问题是我的攻击单元的 compareTo 方法。

这是我的 compareTo 代码:

我注意到问题的街区之一是单位进入顶部,中途转角并退出右侧的街区。该块有两个 ArrayList,一个用于从上到下的单元 (enPath),一个用于从左到右的单元 (exPath)。这是我遇到问题的代码:

单位在 exPath 和单位(TreeSet)中,但 units.remove(unit) 返回 false。关于如何更改 AttackingUnit 上的 compareTo 以解决此问题的任何想法?

0 投票
1 回答
968 浏览

android - Android 字典 TreeSet 更快的加载时间

我的字典中有 300000 个单词(实际上以 txt 格式(新行分隔)保存在我的 Android 设备的 sdcard 上)。我想构建一个数据结构,该结构将花费尽可能少的时间从我的 txt 文件中插入单词(String-s)到这个数据结构中。而且这个 DS 必须非常快地检查字典(这个 DS)中是否存在单词。我已经尝试了几个内置的 DS,最快的 IMO 是 TreeSet。是否有任何其他(非内置)DS 可以更快地插入/创建 DS 并且与 TreeSet 一样用于搜索?

还有一件事是我可以通过重新排列我的 txt 文件(以正确的顺序放置单词)来“帮助”TreeSet 更快地插入。

问候

0 投票
7 回答
55928 浏览

java - 在 TreeSet 上使用迭代器

情况:我有一个自定义对象的 TreeSet,并且我还使用了一个自定义比较器。我创建了一个迭代器以在此 TreeSet 上使用。

问题:嗯,我想知道,如果我在 while 循环中向 TreeSet 添加一个新元素,那么该新元素会立即排序。换句话说,如果我在 while 循环中添加一个新元素并且它小于我当前在 c 中保存的元素,那么在下一次迭代中,我会在 c 中获得与上一次迭代相同的元素吗?(因为排序后,新添加的元素会占据当前元素之前的某个位置)。

0 投票
2 回答
1536 浏览

java - 用整数填充(树)集的最短方法?

如果我想制作一个(树)集并用 2000 个整数填充它。从 0 开始,然后添加 1,2,3,4...2000。最好的方法是什么?

我可以

或使用 add(i);i++;

但是有没有更简单/更短的方法?

谢谢!

0 投票
4 回答
1568 浏览

java - TreeSet contains 方法对我不起作用

我想将自定义的数据放入TreeSet. 当自定义数字相同时,我添加交易量。

这是我TradeNode实现ComparableInterator 的类。

测试类是:

我认为输出应该是这样的:

但输出是

有人可以帮助我并指出我的错在哪里吗?

如果我像这样更改 compareTo() 方法,它仍然不起作用。

结果是:

我尝试了Ben Xu的方法,代码如下:我的新 compareTo() 方法:

我的新Testtree类:

结果是:

最后,它满足了我的要求。但是我仍然不知道为什么这个新的 compareTo() 方法在下面的测试方法中不起作用:

结果是:

我认为它是:

有人能告诉我新的 compareTo() 方法的错误在哪里吗?非常感谢,感谢任何帮助我的人。

哈哈哈,我从 JavaRanch 得到了答案。有个叫亨利的人告诉我答案。现在我认为当我们在 TreeSet 中使用 contains() 方法时,它不会搜索此 Set 中的所有内容,它只搜索排序值。

新的 Testtree3 类是:

结果是:

哈哈。现在我将去寻找 TreeSet 背后的代码。

0 投票
5 回答
2468 浏览

java - InetSocketAddress 的 Java 比较器

我需要写ComparatorInetSocketAddress以便我可以在TreeSet. 它们需要通过地址和端口进行比较。

代码看起来像这样,但问题是我不知道如何通过 <(-1),>(1),=(0) 比较地址和端口

编辑...实际问题。如何比较 InetSocketAddress。

0 投票
5 回答
14892 浏览

java - 从 Android 中的 ArrayList 中删除重复的对象

我知道这已经在这里讨论了一遍又一遍,但我尝试过的例子都没有为我工作。

我有什么

我从 Android 访问通话记录,并获得所有通话的列表。当然,在这里我得到了很多重复。首先我列一个清单

然后我将对象添加到其中

Contact Object 类很简单

我需要的

我只需要在列表中有一个联系人。正如我在这里所读到的,有几件事可以完成,例如 Set、HashSet、TreeSet。TreeSet 似乎是最好的,因为它保持了我从呼叫日志中收到的顺序。我试图让我的代码使用它,但没有成功。谁能根据我的例子给我一个示例代码。感谢您的时间。

工作解决方案。谢谢大家的支持,你们让我开心。

在 ContactObject 中重写这两个方法

//Getter 和 Setter 以及构造函数....

只需将其用作

0 投票
2 回答
1551 浏览

java - Android 中是否缺少 TreeSet.floor() 和 TreeSet.ceiling() 方法?

这对我来说是一个很深的谜。

看看这个:

在普通的 Java VM 中,它可以很好地编译和运行。

如果我看看Android的API文档,甚至根据: http ://www.java2s.com/Open-Source/Android/android-core/platform-libcore/java/util/TreeSet.java.htm

方法天花板和地板应该在那里。

但是如果我尝试在 Eclipse + Android SDK 中使用它们(构建目标是“8”),Eclipse 告诉我没有为类 TreeSet 定义 floor(Long) 和 ceiling(Long)

任何的想法?

谢谢,卡尔海因茨

0 投票
2 回答
1132 浏览

java - 将 HashMap 值添加到 TreeSet 时出错

这是一些示例代码...我似乎总是遇到 ClassCastException...有人指出我做错了什么吗?

0 投票
2 回答
5321 浏览

java - 动态搜索 TreeSet 中的记录

我正在使用 swing 和 awt 库在 Java 中编写通讯录应用程序。该应用程序由一个使用 TreeSet 作为 abstractListModel 的 JList 组成。

TreeSet 用于名为 Contact 的类,该类具有私有比较器类,可根据联系人的名字对联系人进行排序。private boolean equals(Object o)如果 Contact 具有与 O 相同的 mobileNumber(当然是在转换之后),则该方法返回 true。

我想在此应用程序中添加搜索功能。我进行了搜索 JTextField 并添加了一个 keyListener ,我想要做的是在按下每个键后,列表会显示一组包含搜索词的缩小结果。在 TreeSet 或任何其他集合中是否有此方法?我希望它类似于您在 iPod 中的音乐应用程序中的内容,例如,当您键入字母“f”时,它会列出所有包含字母 F 的歌曲,但仅在您键入“50 cent”时出现您想要的歌手的歌曲。

谢谢你的帮助。