我正在寻找java.util包中的数据结构。我需要它来满足以下要求:
我希望找到一个可索引的跳过列表,但我没有。他们有满足我所说的要求的数据结构吗?
发布于 2010-11-23 03:08:29
不存在满足所有标准的简单数据结构。
据我所知,唯一能满足所有这些要求的就是indexable skip list。Hoewever,我不知道有什么现成的Java实现。
发布于 2010-11-23 03:16:37
Java标准库中没有这样的容器。
当我需要具有这些属性的数据结构时,我使用List实现(通常是ArrayList,但这无关紧要),并且我使用Collections.binarySearch执行所有插入。
如果我必须将排序列表封装为一个可重用的类,我会实现list接口,将所有方法委托给一个“标准”List实现(它甚至可以作为参数传递给构造函数)。我会通过抛出一个异常(UnsupportedOperationException)来实现每个插入方法(add、addAll、set、迭代器的remove),这样就没有人能破坏“always sorted”属性了。最后,我将提供一个使用Collections.binarySearch进行插入的方法insertSorted。
发布于 2010-11-23 02:56:52
在向列表中添加元素时,TreeSet为您提供了自然排序功能。但是,如果您不需要这样做,并且允许使用Collections.sort(),那么您可以使用简单的ArrayList。
https://stackoverflow.com/questions/4249088
复制相似问题