我正在寻找一个集合,该集合将是某种允许间隙的列表。目标是:
- 每个元素在集合中都有一些有意义的索引。
- 集合是稀疏的而不是连续的;它的大小应该返回适当元素的数量,因此使用
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
界面,你可以自己制作List
由 TreeMap
支持的实现(例如,list.add(5,3)
会调用 map.put(5,3)
)。
关于java - 是否有允许间隙的列表实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27360730/