TL;
DR:使用Iterables.size(Iterable)
强大的Guava库的实用程序方法。
在您的两个代码段中,应该使用第一个,因为第二个将删除中的所有元素
values,因此之后为空。更改简单查询的数据结构(例如其大小)是非常意外的。
为了提高性能,这取决于您的数据结构。例如,如果实际上是an
ArrayList,则从头开始删除元素(第二种方法正在做的事情)非常慢(计算大小变为O(n* n)而不是应有的O(n))。
通常,如果有可能
values是a
Collection而不只是a
Iterable,请检查并致电
size()以防万一:
if (values instanceof Collection<?>) { return ((Collection<?>)values).size();}// use Iterator here...
要将呼叫
size()通常比计算元素的数量快得多,而且这一招正是
Iterables.size(Iterable)的番石榴为你做。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)