草庐IT

Android 字典 TreeSet 更快的加载时间

我的字典里有大约300000个单词(实际上以txt格式(新行分隔)保存在我的Android设备的sdcard上)。我想构建一个数据结构,它会花费尽可能少的时间从我的txt文件中插入单词(String-s)到这个数据结构中。而且这个DS必须非常快才能检查字典(这个DS)中是否存在单词。我尝试了几种内置DS,最快的IMO是TreeSet。是否有任何其他(非内置)DS可以更快地插入/创建DS并且与TreeSet一样用于搜索?还有一件事是我可以通过重新排列“帮助”TreeSet更快地插入我的txt文件(按正确顺序排列单词)。问候 最佳答案

java - 列表到 TreeSet 的转换产生 : "java.lang.ClassCastException: MyClass cannot be cast to java.lang.Comparable"

ListmyclassList=(List)rs.get();TreeSetmyclassSet=newTreeSet(myclassList);我不明白为什么这段代码会生成这个:java.lang.ClassCastException:MyClasscannotbecasttojava.lang.ComparableMyClass没有实现Comparable。我只想使用Set来过滤List的唯一元素,因为我的List包含不必要的重复元素。 最佳答案 是否MyClassimplementsComparable或类似的东西?如果不是,

java TreeSet - 不要删除重复的项目

TreeSet删除了具有相同Comprator值的不同项目。我不希望它被删除。有什么办法可以控制吗?或者使用其他容器类?添加:好的。看来我不能使用Set。出于性能考虑,我需要插入排序功能。List可以这样做吗?谢谢大家。 最佳答案 根据定义,一个集合不能有重复的条目。所以你需要使用列表或数组之类的 关于javaTreeSet-不要删除重复的项目,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/ques

c# - Java 中的 TreeSet 等同于 C#.net

我有包含TreeSet的Java代码。我想将代码转换为C#。我可以使用哪个等效集合?如果没有,请提出替代方案。 最佳答案 那就是System.Collections.Generic.SortedSet.它确实具有人们期望从平衡的树支持数据结构中获得的方法和复杂性保证。您可以查找最大值、最小值,按顺序遍历所有元素,一切。参见AddtoSortedSetanditscomplexity有关更多信息。 关于c#-Java中的TreeSet等同于C#.net,我们在StackOverflow上找

java - 使用非 Comparable 类 : why a run-time exception, 而不是编译时错误创建 TreeSet?

如果我创建一个未实现Comparable的任意类,并尝试将其用作树集,它会在插入对象时在运行时抛出异常:publicclassFoo{}publicTreeSetfooSet=newTreeSet();fooSet.add(newFoo());//ThrowsaClassCastExceptionexceptionhere:Fooisnotcomparable我不是Java专家,但似乎以一种我没有预料到的方式动态输入(alaPython)。TreeSet的实现是否无法指定其泛型类型参数必须实现Comparable以便可以在编译时捕获?非泛型函数可以将接口(interface)作为参数;

java - Java 中 PriorityQueue 和 TreeSet 的区别?

这个问题在这里已经有了答案:WhenshouldIuseaTreeMapoveraPriorityQueueandviceversa?(11个答案)关闭9年前。我试图了解何时使用这两种数据结构。据我所知,PriorityQueue也是作为树实现的,因为文档指出插入、删除和包含的平均时间为O(log(n))。TreeSet也提供相同的时间复杂度。加上它们都是不同步的实现。我可以为它们编写比较器,使其像最小堆或最大堆一样工作。有人能指出我在什么情况下使用这两组吗?

Java - TreeSet 和 hashCode()

我有一个关于TreeSet的快速问题Collection和hashCode方法。我有一个TreeSet并向其添加对象,在添加对象之前,我使用contains检查它是否存在于TreeSet中方法。我有2个不同的对象,每个对象都使用我对hashCode方法的实现生成不同的hashCode,示例如下:publicinthashCode(){inthash=7;hash=hash*31+anAttribute.hashCode();hash=hash*31+anotherAttribute.hashCode();hash=hash*31+yetAnotherAttribute.hashCode

java - TreeSet 的优缺点是什么

关闭。这个问题需要更多focused.它目前不接受答案。想要改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion只是想知道TreeSet的优缺点是什么,如果有人可以告诉我吗?谢谢! 最佳答案 集合类之一。它使您可以按键或按顺序访问集合中的元素。它的开销比ArrayList或HashMap多得多。不需要顺序访问的时候使用HashSet,只需要按键查找即可。使用ArrayList并使用数组。如果您只想按顺序排列元素,请排序。TreeSet始终保持元素有序。使用Ar

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

我有一个使用Comparable定义“自然排序顺序”的对象。这些存储在TreeSets中。除了删除和重新添加对象之外,当用于定义排序顺序的成员更新时,还有其他方法可以更新排序吗? 最佳答案 正如其他人所指出的,没有内置的方法。但是您始终可以使用您选择的构造函数对该TreeSet进行子类化,并添加所需的功能:publicclassUpdateableTreeSetextendsTreeSet{//definitionofupdateableinterfaceUpdateable{voidupdate(Objectvalue);}//c

java - 使用流通过自定义比较器收集到 TreeSet

在Java8中工作,我有一个TreeSet定义如下:privateTreeSetpositionReports=newTreeSet(Comparator.comparingLong(PositionReport::getTimestamp));PositionReport是一个相当简单的类,定义如下:publicstaticfinalclassPositionReportimplementsCloneable{privatefinallongtimestamp;privatefinalPositionposition;publicstaticPositionReportcreate(