用于获取列表大小和最后一个对象的 Java 常用实用程序

发布于 2024-11-26 08:05:09 字数 213 浏览 2 评论 0 原文

即使制作句柄很容易,但我想知道是否有任何著名的助手可以帮助获取列表的大小或获取列表的最后一个对象。我认为这确实是一个受欢迎的要求,但我找不到一个。

size = list==null? 0: list.size();
lastObject = isEmpty(list)? null:list.get(list.size() - 1).

谢谢,

Even if it's easy to make an handle make, but I wonder if there is any famous helper help to get the size of a list or to get the last object of a list. I think it is really a popular requirements, but I couldn't found one.

size = list==null? 0: list.size();
lastObject = isEmpty(list)? null:list.get(list.size() - 1).

Thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

椒妓 2024-12-03 08:05:09

这些对我来说似乎没什么帮助。我尝试初始化我的列表,使它们不为空,因此第一个列表根本没有用。至于第二个,返回一个可能为空的对象(然后必须测试它是否为空)并不比首先检查列表的大小更有用。

Those don't seem all that helpful to me. I try to initialize my lists so they're not null, so the first one is not useful at all. As for the second, it's no more useful to get back a possibly-null object (which then has to be tested to see if it's null) than it is to check the size of the list first.

久伴你 2024-12-03 08:05:09

据我所知,没有辅助方法。您应该确保的一件事是,在编写自己的帮助实用程序时,请特别注意您的目标集合。如果它是一个List,请避免使用get(index),因为它对于链表实现来说不是很有效。如果它是一个ArrayList或一般来说任何实现RandomAccess的集合,get是非常有效的。最通用的方法是获取最后一个元素的迭代器,并在其存在时调用 next()

public static <T> T getLast(final List<T> list) {
    final ListIterator<T> listIterator = list.listIterator(list.size());
    return listIterator.hasPrevious() ? listIterator.previous() : null;
}

There isn't a helper method for this AFAIK. One thing you should make sure is that when writing your own helper utility, pay special attention to your target collection. If it is a List, avoid using get(index) since it is not very efficient for a linked list implementation. If it is an ArrayList or in general any collection which implements RandomAccess, get is very efficient. The most generic way would be to obtain an iterator for the last element and invoke next() on it if it exists.

public static <T> T getLast(final List<T> list) {
    final ListIterator<T> listIterator = list.listIterator(list.size());
    return listIterator.hasPrevious() ? listIterator.previous() : null;
}
起风了 2024-12-03 08:05:09

Google Guava 有 getLast 方法。但是,我找不到处理空集合的大小方法。

Google Guava has a getLast method. However, I couldn't find a size method that handles null Collections.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文