【发布时间】:2020-12-01 12:36:26
【问题描述】:
谁能解释一下为什么 Java Vector 中的 removeRange(int fromIndex, int toIndex) 受到保护?
语法 -
protected synchronized void removeRange(int fromIndex, int toIndex)
我研究了一些博客并做了一些代码来理解,但这里的事情并不是很清楚。我查看了 Vector.java 内部并试图建立一些理解。但我的总体看法是removeRange(int fromIndex, int toIndex) 最终会被删除。
我觉得sublist(int fromIndex, int toIndex).clear() 有能力做同样的工作。从实现和可用性的角度来看,看起来更贴切。
如果您有更好的想法,请帮助理解。
【问题讨论】:
-
“但我的总体看法是
removeRange(int fromIndex, int toIndex)最终会被删除。”是什么让你认为它会?你为什么会期望它首先是public? -
也许完全避免使用
java.util.Vector。这通常不是最佳选择。 -
永远不要使用
Vector!请改用ArrayList -
当然,“
sublist(int fromIndex, int toIndex).clear()能够完成同样的工作”。它有能力做到这一点,因为有人已经实现了它。对于Vector或AbstractList的任何其他子类,例如ArrayList,它已通过受保护的方法实现。这比要求每个子类再次实现子列表要简单。 -
@Akshat 声明它
protected实现您将使用标准API,即sublist(fromIndex, toIndex).clear(),而不是使用此实现细节。
标签: java collections java-13