Java上令人费解的返回值';s列表
我对Java列表上的返回值感到困惑 我希望像Java上令人费解的返回值';s列表,java,Java,我对Java列表上的返回值感到困惑 我希望像add和remove这样的操作返回添加或删除元素的索引,而不是在成功时返回true 当使用add时,我可能会通过调用size-1获得此id(我想这并不昂贵),而使用remove时,我必须调用indexOf,这对我来说似乎是一种浪费 我遗漏了什么吗?如何使用索引添加和删除呢?我认为解释是,和在界面上,因此它们适用于地图集以及基于列表的数据结构。也许列表不是您需要的数据结构-举个例子说明为什么这样做会很尴尬。删除后,该项不在列表中,所以索引并没有真正的意义
add
和remove
这样的操作返回添加或删除元素的索引,而不是在成功时返回true
当使用add
时,我可能会通过调用size
-1获得此id(我想这并不昂贵),而使用remove
时,我必须调用indexOf
,这对我来说似乎是一种浪费
我遗漏了什么吗?如何使用索引添加和删除呢?我认为解释是,和在界面上,因此它们适用于地图集以及基于列表的数据结构。也许列表不是您需要的数据结构-举个例子说明为什么这样做会很尴尬。删除后,该项不在列表中,所以索引并没有真正的意义。@Emma:没错,不是,但我正在编辑外来代码,这看起来是我在这种情况下所能做的最不具破坏性的修改。或者你对
List
的实现可能是一个排序列表。快告诉我吧,我会删除我的答案。为了详细说明,地图和集合通常没有排序或“索引”的概念。该接口不扩展集合,也没有添加方法。是的,使用indexOf(Object obj)获取索引,然后调用remove(int i)。现在你有了索引。如果您使用ArrayList,这并不是低效的。