获取最后添加的元素 Arraylist
Posted
技术标签:
【中文标题】获取最后添加的元素 Arraylist【英文标题】:Get last added element Arraylist 【发布时间】:2012-09-11 15:25:37 【问题描述】:我们如何获得ArrayList 中最后一个添加的 元素。我发现this 解释了如何获取最后一个元素,但最后添加的元素总是最后一个元素吗?
【问题讨论】:
如果你使用add(element)
是的,因为它“将指定的元素附加到这个列表的末尾。”如果你使用add(index, element)
,它可以在任何地方。
【参考方案1】:
是的,正如其他人所说,ArrayList
保留插入顺序。如果您想要最后添加的元素,(仅当您总是使用 add(element)
添加元素时)只需输入:
yourArrayList.get(yourArrayList.size()-1);
您的答案在您所说的链接中:)
【讨论】:
【参考方案2】:ArrayList
是,它保留插入顺序
如果您通过指定索引add()
将元素显式添加到特定位置,在这种情况下,您需要通过自定义ArrayList 实现来设置插入时间,并在检索最新插入的元素时考虑计算时间
或者最好有一个指向最后插入项目的引用,如Marko Topolnik 建议的那样,在删除时也要保持它
如果您不关心集合的唯一性属性,最好使用LinkedHashSet
【讨论】:
除非你用add(index, element)
另外告诉它
不需要插入时间,那将是矫枉过正;只需记录添加的最后一个元素。但这只有在您控制课程时才有效;从 OP 的问题来看,他似乎正在处理一个预先存在的ArrayList
。
@Marko 是的,那会更好
...除非您还想支持元素被删除并且您仍然希望添加最后一个元素的情况!然后像你的解决方案这样的东西将是唯一的选择,但仍然不是保持时间,而是加法操作的顺序。否则,对于添加的许多元素来说,相同的添加时间是快速连续的,这几乎是典型的。【参考方案3】:
如果您使用add(element)
签名,您在ArrayList
中的最后一个元素始终是最后插入的元素。
如果您使用的是add(index, element)
,您将无法确切知道哪个是最后一个。创建ArrayList
的子类的最简单解决方案,它将最后插入的元素保存在特殊变量中。
【讨论】:
以上是关于获取最后添加的元素 Arraylist的主要内容,如果未能解决你的问题,请参考以下文章