一个适用于Java的好的排序列表

11 浏览
0 Comments

一个适用于Java的好的排序列表

我正在寻找一个适用于Java的良好排序列表。在谷歌上搜索得到了一些使用TreeSet/TreeMap的提示。但是这些组件缺少一点:对集合中的元素进行随机访问。

例如,我想要访问排序集合中的第n个元素,但是使用TreeSet时,我必须在到达目标元素之前遍历其他n-1个元素。这将是一种浪费,因为我的集合中可能有数千个元素。

基本上,我正在寻找类似于.NET中的排序列表,具有快速添加和删除元素的能力,并且可以随机访问列表中的任何元素。

是否有实现这种排序列表的地方?

谢谢。

编辑:

我对SortedList的兴趣源于以下问题:

我需要维护一个包含数千个对象(可能增长到数十万个)的列表。这些对象将被持久化到数据库中。我想从整个列表中随机选择几十个元素。因此,我尝试维护一个内存中的列表,其中包含所有对象的主键(长整型数字)。当从数据库中添加/删除对象时,我需要向该列表中添加/删除键。我现在正在使用ArrayList,但我担心当记录数量增长时,ArrayList可能不适合使用(想象一下每次从数据库中删除一个对象时需要遍历几十万个元素)。回到我做.NET编程的时候,我会使用一个排序的List(List是一个.NET类,一旦设置了Sorted属性为true,它将维护元素的顺序,并提供二分搜索,可以快速删除/插入元素)。我希望我能在Java BCL中找到类似的东西,但不幸的是,我没有找到一个很好的匹配。

0