10得票4回答
为什么Java的TreeSet没有指定其类型参数必须扩展Comparable?

例如下面的代码在第二个Object被添加到TreeSet时会抛出ClassCastException异常。难道TreeSet不能被编写成只接受Comparable类型的类型参数吗?也就是说,如果TreeSet只接受Comparable类型的参数,那么它就不会编译,因为Object不是Compa...

10得票3回答
当没有区分字段时,适用于TreeSet的比较器

假设我有一个未实现Comparable接口的类,如下: class Dummy { } 这是一个类的实例集合,外部还有一些函数用于对这些实例进行部分比较(下面将使用映射来实现此目的): Collection<Dummy> col = new ArrayList<&gt...

9得票3回答
在C++中是否存在与TreeSet数据结构类似且具有相似功能的数据结构?

我需要在C++中使用Tree Set数据结构(Java中可用),并利用TreeSet.lower(i)和TreeSet.higher(i)等函数,它们返回给定树集中比i小或大的元素。是否有STL? 编辑: 以下是我需要的功能,我想知道如何使用upper_bound和lower_bound函数...

9得票5回答
在Android中从ArrayList中删除重复的对象

我知道这个问题在这里已经被反复讨论过,但是我尝试过的所有示例都不适用于我。 我的情况 我从Android中访问通话记录,并获取所有通话记录的列表。当然,我会得到很多重复的记录。 首先,我创建一个列表。 List<ContactObject> lstContacts = new...

9得票2回答
为什么TreeSet迭代的时间复杂度是O(n),而不是O(n*logn)?

我读到了一个关于TreeSet时间复杂度的先前问题,答案是它需要O(n)的时间。然而,我不明白为什么迭代的时间复杂度是O(n),而不是O(n*nlogn)。 每次next调用需要O(logn)的时间 因此,如果我像这样遍历TreeSet: while (iterator.hasNext(...

9得票5回答
当compareto返回0时了解TreeSet

我创建了一个这样的学生类: public class Student implements Comparable<Student> { private String firstName; private String lastName; public ...

9得票4回答
Can't I put a null in a SortedSet?

我认为 null 是允许在 Set 中使用的。 那么为什么以下代码会出错: SortedSet<Integer> set = new TreeSet<Integer>(); set.add(null); set.add(1); //--->Line i...

8得票2回答
我应该在处理大量数据时使用 `HashSet` 还是 `TreeSet`?

我需要将 2 到 15 百万个账户(长度为 15 的字符串)存储在一个数据结构中,以便进行查找和检查唯一性。最初我计划使用 HashSet 存储它们,但是我怀疑由于哈希冲突而导致的查找速度会很慢,最终比使用 TreeMap(使用二进制搜索)更慢。 数据不需要排序。我正在使用 Java 7。我...

8得票5回答
TreeSet中有序操作的时间复杂度是什么?

以下是在java.util.TreeSet中以下操作的时间复杂度: first():O(log n) last():O(log n) lower():O(log n) higher():O(log n) 尽管API没有做出保证,但我认为这些操作的时间复杂度都是对数时间。

8得票5回答
使用二分查找从TreeSet中返回一个元素

在TreeSet中,有一个叫做contains的方法,如果元素在集合中则返回true。我认为这个方法使用二分查找而不是按升序迭代所有元素。我对吗? 我有一个TreeSet,其中包含一个类的对象,该类使用两个字符串实例变量来区分它与同一类的其他对象。我想创建一个方法,通过比较对象的两个实例变量...