【发布时间】:2013-12-06 09:48:28
【问题描述】:
如果在大于当前列表大小的索引处添加元素而不抛出任何 RuntimeException,我如何创建一个重新调整大小的List<T>。考虑以下代码示例:
List<String> myList = new ArrayList<String>();
// Assuming current list size is 10, Let's insert at a very large index.
int index = 10000;
myList.add(index, "test");
如果索引超出列表大小,添加操作将导致 IndexOutOfBoundException。
我希望列表填充稀疏,因此它的大小应该与非空值的数量成正比。
【问题讨论】:
-
使用
index并且java中不存在可增长的集合,要么不要使用index,同时在现有集合上添加或编写您的自定义逻辑,即ArrayList -
那么地图怎么样?
-
每个索引代表两个字符串之间的 EditDistance。例如,编辑书籍之间的距离 --> test = 4,因此 4 处的索引将具有测试。我实际上正在实现 BK 树的变体。我正在寻找一个内存开销相对较小的集合,因为随着树的增长,子节点的子节点将具有非常小的大小。
-
每个索引代表两个字符串之间的编辑距离?然后你会有一个“书”列表,一个“杂志”列表,等等?
-
@Anupam:
Map<Integer, String>有什么问题?它完全涵盖了您所要求的功能。
标签: java arraylist collections