treeset相关内容

在 TreeSet 上使用迭代器

情况:我有一个自定义对象的 TreeSet,并且我还使用了一个自定义比较器.我创建了一个迭代器以在此 TreeSet 上使用. TreeSetts=new TreeSet();迭代器itr=ts.iterator();而(itr.hasNext()){自定义 c=itr.next();//向 TreeSet ts 添加新元素的代码} 问题:好吧,我想知道,如果我在 while 循环中 ..
发布时间:2022-01-10 14:58:18 Java开发

在对象更改值时保持 TreeSet 排序

我有一个使用 Comparable 定义“自然排序顺序"的对象.这些都存储在 TreeSet 中. 除了删除和重新添加对象之外,当用于定义排序顺序的成员更新时,还有其他方法可以更新排序吗? 解决方案 正如其他人所指出的,没有内置的方法.但是您始终可以使用您选择的构造函数对 TreeSet 进行子类化,并添加所需的功能: public class UpdateableTreeSet扩 ..
发布时间:2021-12-27 18:08:20 Java开发

TreeSet 是否可能等于 HashSet 但 HashSet 不等于 TreeSet

我今天接受了一次采访,接受我采访的人对他的陈述感到困惑,他问TreeSet 是否可能等于 HashSet 但不等于 HashSet 等于 TreeSet.我说“不"但据他说,答案是“是". 怎么可能? 解决方案 你的面试官是对的,他们在某些特定情况下不存在等价关系.TreeSet 可能等于 HashSet ,反之亦然.下面是一个例子: TreeSettreeSet = new Tr ..
发布时间:2021-12-27 18:06:44 Java开发

如何在TreeSet中找到元素的索引?

我正在使用 TreeSet 并且我只想在集合中找到一个数字的索引.有没有一种很好的方法来做到这一点,它实际上利用了二叉树的 O(log(n)) 复杂度? (如果没有,我应该怎么做,有谁知道为什么不呢?我很好奇为什么 Java 中会包含这样一个类,而没有搜索功能之类的功能.) 解决方案 正如@Yrlec 指出的那样 set.headSet(element).size 将返回 0,尽管集 ..
发布时间:2021-12-22 08:19:31 Java开发

哈希集与树集

我一直很喜欢树木,它漂亮的 O(n*log(n)) 和它们的整洁.然而,我认识的每一位软件工程师都尖锐地问我为什么要使用 TreeSet.从 CS 背景来看,我认为你使用什么并不重要,我也不关心散列函数和存储桶(在 Java 的情况下). 在哪些情况下我应该在 TreeSet 上使用 HashSet? 解决方案 HashSet 比 TreeSet 快得多(对于添加、删除和包含等大多数操作 ..
发布时间:2021-11-25 13:41:37 Java开发

将 TreeSet 转换为 ArrayList?

我有一个包含 > 100k 个对象的 TreeSet.我有另一种方法需要 ArrayList 作为参数. 有什么方法可以在不迭代整个 TreeSet 然后手动将每个对象添加到 ArrayList 的情况下完成此操作吗? 解决方案 这个怎么样: new ArrayList(set); 对于 Java 7 及更高版本,这可以简化,因为类型参数 可以替换为菱形类型 : new Arr ..
发布时间:2021-11-17 23:27:56 Java开发

TreeSet内部使用TreeMap,那么使用Treeset时是否需要实现Hashcode方法?

我想知道当 TreeSet 的 javadocs 说 是什么意思 这个类实现了 Set 接口,由一个 TreeMap 实例支持? 在下面的示例中,我还没有实现 Hashcode 方法,但它仍然按预期工作,即它能够对对象进行排序.请注意,我故意没有实现一致的 Equals 实现来检查 TreeSet 行为. import java.util.TreeSet;公共类比较逻辑实现了 Comp ..
发布时间:2021-09-09 19:40:21 Java开发

树集示例

为什么第三个对象不在这里添加到树集中,尽管它是一个不同的对象? import java.util.*;类 Student 实现 Comparable{公共字符串 fn,ln;公共学生(字符串 fn,字符串 ln){this.fn=fn;this.ln=ln;}//覆盖等号公共布尔等于(对象 o){if (!(o instanceof Student))返回假;学生 s=(学生) o;如果(这个= ..
发布时间:2021-08-31 18:33:11 Java开发

树集优于手动排序集的好处

在集合中,我们可以根据我们的要求对集合或地图进行排序.Treeset 或 TreeMap 也提供排序集合.当我们需要排序集合时,使用树集有什么好处 解决方案 之前的海报没有提到一个重要的标准:如果你的集合中的元素在插入后经常改变它们的状态,即你需要多次重新排序同一个集合,也许 TreeSet 或 TreeMap 不是理想的,因为元素只在插入时排序,之后不会.IE.如果您更改 TreeSet ..
发布时间:2021-07-23 19:19:30 Java开发

动态搜索 TreeSet 中的记录

我正在使用 Swing 和 awt 库用 Java 编写通讯录应用程序.应用程序由一个 JList 组成,它使用一个 TreeSet 作为抽象列表模型. TreeSet 用于一个名为 Contact 的类,该类具有私有比较器类,可根据联系人的名字对联系人进行排序.private boolean equals(Object o) 如果 Contact 的 mobileNumber 与 O 的相 ..
发布时间:2021-07-17 19:49:07 Java开发

如何在TreeSet中使用自定义类?

如果我使用的是与此类似的 Set : Sets = new TreeSet();类节点{私人诠释x;私人内部} 这是否可以接受,并且由于它是一个TreeSet,是否也可以对其进行排序? 解决方案 如果不实现 Comparable ,就无法对它进行排序,这实际上是不合适的进行设置操作,直到您覆盖 equals()和 hashCode().(您 ..
发布时间:2021-05-18 19:42:35 Java开发

我的树集仅添加1个类对象

我正在尝试将以下书籍对象添加到TreeSet中.但是,当我调试代码时,它说该集合的大小为1,并且仅包含添加的第一个对象(book1).当我注释book1时,book2是唯一添加的一个,依此类推. 为什么JVm只识别一个对象? 代码: public static void main(String [] args){设置bookSet = new TreeSet ..
发布时间:2021-04-23 18:42:28 Java开发

检查文件中单词列表的最有效方法

我刚完成一项家庭作业,希望我将所有Java关键字添加到HashSet中.然后读入一个.java文件,并计算任何关键字出现在.java文件中的次数. 我走的路线是: 创建了一个包含所有关键字的String []数组. 创建一个HashSet,并使用Collections.addAll将数组添加到HashSet中. 然后,当我遍历文本文件时,我将通过HashSet.contains(curren ..
发布时间:2020-11-22 05:53:50 Java开发

HashSet和TreeSet性能测试

我读到有关TreeSet比HashSet慢的信息(将元素添加到TreeSet的速度较慢),所以我进行了性能测试,我试图找出将元素添加到HashSet并将其移入其中是否更好TreeSet或将它们放在第一位.看起来将元素插入到HashSet中的速度更快,但是仅当我插入大量元素时,为什么?我读过,如果我不需要对元素进行排序,请始终使用HashSet,但显然,有时它会更慢. 当我插入一个具体的值(" ..
发布时间:2020-11-22 05:48:57 Java开发

如何在Java中使用允许重复的TreeSet?

我想要一个具有O(logn)时间优先队列功能的数据结构,并且还能够删除某个特定元素,而该元素不一定是O(logn)时间的开头。我听说Java中的TreeSet可以这样做,但不允许重复,如何解决呢? 解决方案 使用 TreeMap ,允许插入在 log n 的时间内删除,并在 log n 的时间内删除。您可以在那里 TreeMap ,其中key存储元素的值 ..
发布时间:2020-10-18 00:40:54 Java开发

如何在Java中的TreeSet中返回第k个元素?

也许我没有使用正确的数据结构。我需要使用一个集合,但也想有效地返回第k个最小元素。 Java中的 TreeSet 可以做到吗?似乎没有 TreeSet 的内置方法可以做到这一点。 解决方案 我不相信 TreeSet 具有直接执行此操作的方法。有一些二进制搜索树支持O(log n)随机访问(有时也称为顺序统计树),还有此数据结构的Java实现可用。这些结构通常被实现为二进制搜索树,该二进制搜 ..
发布时间:2020-10-17 23:38:55 Java开发

TreeSet自定义比较器算法..字符串比较

从提供的输入字符串中: {“ 200,400,7,1”,“ 100,0,1,1”, “ 200,200,3,1”,“ 0,400,11,1”, “ 407,308,5,1”,“ 100,600,9,1”}, 我要在TreeSet中添加相同的内容,并希望将其与第3个元素顺序进行排序,因此预期输出为: (100,0,1,1)(200,200,3,1)(407,308,5,1)(20 ..
发布时间:2020-10-06 18:37:15 Java开发