Java 将Iterables强制转换到集合会迭代所有元素吗?
以下是Iterables.isEmpty()的源代码Java 将Iterables强制转换到集合会迭代所有元素吗?,java,guava,Java,Guava,以下是Iterables.isEmpty()的源代码 公共静态布尔值为空(Iterable Iterable){ if(集合的iterable instanceof){ return((Collection)iterable.isEmpty(); } return!iterable.iterator().hasNext(); } 我想知道Iterables.isEmpty()方法是否迭代所有元素,如果给定iterable参数是一种Set类型,它扩展了集合。将Iterable转换为Collect
公共静态布尔值为空(Iterable Iterable){
if(集合的iterable instanceof){
return((Collection)iterable.isEmpty();
}
return!iterable.iterator().hasNext();
}
我想知道Iterables.isEmpty()
方法是否迭代所有元素,如果给定iterable
参数是一种Set
类型,它扩展了集合
。将Iterable
转换为Collection
是否会导致完全迭代?若然,原因为何?若否,原因为何
我想知道Iterables.isEmpty()
方法是否会在给定iterable
否:Iterables.isEmpty()
。它永远不会超过第一个元素
将Iterable强制转换为集合是否会导致完全迭代
不。强制转换对对象没有任何作用,它只是告诉编译器“相信你”,它可以被视为子类,而不是超类
发件人:
演员表情。。。在运行时检查引用值是否引用其类与指定引用类型或引用类型列表兼容的对象
我想知道Iterables.isEmpty()
方法是否会在给定iterable
否:Iterables.isEmpty()
。它永远不会超过第一个元素
将Iterable强制转换为集合是否会导致完全迭代
不。强制转换对对象没有任何作用,它只是告诉编译器“相信你”,它可以被视为子类,而不是超类
发件人:
演员表情。。。在运行时检查引用值是否引用其类与指定引用类型或引用类型列表兼容的对象
public static boolean isEmpty(Iterable<?> iterable) {
if (iterable instanceof Collection) {
return ((Collection<?>) iterable).isEmpty();
}
return !iterable.iterator().hasNext();
}