适合快速获取和快速删除的java集合

2024-05-05

我想知道是否有一个合适的java接口用于“快速”获取(按索引)和“快速”删除。我所说的“快”是指比O(n).

编辑: get 方法仅用于从集合中随机选择一个元素。另外,标题应该说“集合”而不是“界面”。


平衡二叉搜索树具有 O(log n) 的“获取”和“删除”操作。哈希表在 O(1) 时间内实现这些相同的操作。在Java中你可以使用TreeMap http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html or HashMap http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html类。例如:

TreeMap<Integer, String> map = new TreeMap<>();
map.put(0, "hello");
map.put(1, "world");
map.remove(0);

如果您不关心项目的顺序,您可以使用ArrayList。自然地“得到”是O(1)。要删除一个项目,请将最后一个项目移动到您删除的项目的位置,这样您的“删除”时间复杂度为 O(1)。那是:

temp = list.remove(list.size()-1);
return list.set(index, temp);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

适合快速获取和快速删除的java集合 的相关文章

随机推荐