Java 获取集合的最后一个元素

新手上路,请多包涵

我有一个集合,我想获取集合的最后一个元素。最直接、最快速的方法是什么?

一种解决方案是先toArray(),然后返回数组的最后一个元素。还有其他更好的吗?

原文由 tom 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
2 个回答

这不是非常有效的解决方案,但可以工作:

 public static <T> T getFirstElement(final Iterable<T> elements) {
    return elements.iterator().next();
}

public static <T> T getLastElement(final Iterable<T> elements) {
    T lastElement = null;

    for (T element : elements) {
        lastElement = element;
    }

    return lastElement;
}

原文由 nikolai.serdiuk 发布,翻译遵循 CC BY-SA 4.0 许可协议

A Collection 不一定是有序的元素集,因此可能没有“最后”元素的概念。如果你想要订购的东西,你可以使用 SortedSet / NavigableSet 它有一个 last() 方法。或者您可以使用 List 并调用 mylist.get(mylist.size()-1);

如果你 真的 需要最后一个元素,你应该使用 ListSortedSet / NavigableSet 。但是,如果你只有一个 Collection 而你真的、真的、 真的 需要最后一个元素,你可以使用 toArray() 或者你可以使用 Iterator 到列表的末尾。

例如:

 public Object getLastElement(final Collection c) {
    final Iterator itr = c.iterator();
    Object lastElement = itr.next();
    while(itr.hasNext()) {
        lastElement = itr.next();
    }
    return lastElement;
}

原文由 Jack Edmonds 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏