java - 是否有允许间隙的列表实现?

标签 java data-structures collections

我正在寻找一个集合,该集合将是某种允许间隙的列表。目标是:

  • 每个元素在集合中都有一些有意义的索引。
  • 集合是稀疏的而不是连续的;它的大小应该返回适​​当元素的数量,因此使用 null 进行初始化的解决方法将不起作用。
  • subList 方法是根据索引间隔访问子列表的理想方法

示例用例:

List<Integer> list = /* ? */;
list.add(0,5);
list.add(1,4);
list.add(5,3);
for( Integer i : list )
{
    System.out.print( i + " " );
}
/* desired output : "5 4 3 "*/

最佳答案

使用 Map<Integer,Integer> .键是您的索引,值是列表的值。

对于您的 subList 要求,可能是 TreeMap<Integer,Integer>会起作用,因为它使键保持排序并使迭代子列表变得容易。

当然,这意味着您不能使用 List界面。如果必须使用 List界面,你可以自己制作ListTreeMap 支持的实现(例如,list.add(5,3) 会调用 map.put(5,3))。

关于java - 是否有允许间隙的列表实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27360730/

相关文章:

OS X 上的 Java 输入,无按键重复,但有 glut 是

java - ReactorClientHttpConnector((<no type> opt) -> {}) 未定义

java - 是否可以手动检查 LocateRegistry 是否存在?

java - 如何创建签名为 List 的方法

php - 添加到 grid.php 文件的网格选择

java - 使用 JAXB 解析 Solr 状态响应 XML

java - 固件文件容器 : collection of binary data parts

android - 存储用于应用程序访问的变量

c - 交换链表中的节点

java - 根据相关的 id 列表重新排序集合