即使制作句柄很容易,但我想知道是否有任何着名的帮助程序帮助获取列表的大小或获取列表的最后一个对象。我认为这确实是一个受欢迎的要求,但我找不到一个。
size = list==null? 0: list.size();
lastObject = isEmpty(list)? null:list.get(list.size() - 1).
谢谢,
答案 0 :(得分:3)
那些似乎对我没有任何帮助。我尝试初始化我的列表,因此它们不是null,所以第一个根本没用。至于第二个,获取一个可能为空的对象(然后必须进行测试以查看它是否为null)并不比检查列表的大小更有用。
答案 1 :(得分:2)
此AFAIK没有辅助方法。您应该确保的一件事是,在编写自己的帮助程序实用程序时,请特别注意您的目标集合。如果是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;
}
答案 2 :(得分:0)
Google Guava有一个getLast method。但是,我找不到处理null Collections的size方法。