草庐IT

Iterable

全部标签

python - 为什么 Python 中没有 first(iterable) 内置函数?

我想知道Python内置函数中没有first(iterable)是否有原因,有点类似于any(iterable)和all(iterable)(它可能藏在某个stdlib模块中,但我在itertools中看不到它)。first将执行短路生成器评估,从而可以避免不必要的(并且可能是无限数量的)操作;即defidentity(item):returnitemdeffirst(iterable,predicate=identity):foriteminiterable:ifpredicate(item):returnitemraiseValueError('Nosatisfactoryvalu

java - 为什么HashMap没有实现Iterable接口(interface)?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭9年前。Improvethisquestion谁能告诉我为什么HashMap没有实现Iterableinterface? 最佳答案 坦率地说,Map(尤其是HashMap)并没有实现Iterator,因为不清楚它应该是什么迭代。共有三种选择:按键值(value)观参赛作品上述三个选择中没有一个看起来完全不合理:可以提出支持这些方法中的每一个的论据。最后,库设计者决定不为你做这个选择

java - Iterable 接口(interface)是做什么用的?

我是初学者,无法理解Iterable接口(interface)的真正效果。 最佳答案 除了Jeremy所说的之外,它的主要好处是它有自己的一点语法糖:enhancedfor-loop.如果你有一个Iterable,你可以这样做:for(Stringstr:myIterable){...}很好很容易,不是吗?创建Iterator的所有肮脏工作,检查是否hasNext(),并调用str=getNext()由编译器在后台处理。而且由于大多数集合要么实现Iterable或者有一个返回一个的View(例如Map的keySet()或values

java - 在 Guava 中展平一个 Iterable<Iterable<T>>

有没有flattenGuava中的方法-或转换Iterable>的简单方法到Iterable?我有一个Multimap[sourceMultimap]我想返回键匹配某个谓词[keyPredicate]的所有值。所以目前我有:Iterable>vals=Maps.filterKeys(sourceMultimap.asMap(),keyPredicate).values();CollectionretColl=...;for(Collectionvs:vals)retColl.addAll(vs);returnretColl;我查看了Guava文档,但没有任何内容。我只是在检查我没有错过

java - 如何实现 Iterable 接口(interface)?

鉴于以下代码,我如何迭代ProfileCollection类型的对象?publicclassProfileCollectionimplementsIterable{privateArrayListm_Profiles;publicIteratoriterator(){Iteratoriprof=m_Profiles.iterator();returniprof;}...publicProfileGetActiveProfile(){return(Profile)m_Profiles.get(m_ActiveProfile);}}publicstaticvoidmain(String[]

types - 为什么 Kotlin Array<T> 不实现 Iterable<T>

Array为什么不呢?类(class)Kotlin实现Iterable?快速浏览documentation显示它已经有一个iterator()方法也是。 最佳答案 Kotlin旨在与Java完全互操作。Array是X[]无论是在运行时还是从Java的角度来看。Java数组不实现Iterable,所以Kotlin数组(实际上是相同的)也不一样。我们可以让我们的数组实现Iterable通过创建一个与Java数组无关的独立类。但是,为了保持与Java的兼容性,我们必须执行从这种类型到Java数组的隐式转换,然后再返回。由于性能开销和不明确

Kotlin 的 Iterable 和 Sequence 看起来完全一样。为什么需要两种类型?

这两个接口(interface)都只定义了一个方法publicoperatorfuniterator():Iterator文档说Sequence意味着惰性。但是Iterable不是也很懒惰吗(除非有Collection支持)? 最佳答案 主要区别在于Iterable的stdlib扩展函数的语义和实现。和Sequence.对于Sequence,扩展函数尽可能延迟执行,类似于JavaStreamsintermediate操作。例如,Sequence.map{...}返回另一个Sequence并且直到像toList这样的终端操作才真正处理

java - 如何断言 Iterable 包含具有特定属性的元素?

假设我想用这个签名对一个方法进行单元测试:ListgetMyItems();假设MyItem是一个具有许多属性的Pojo,其中一个是"name",通过getName()访问.我只关心验证List,或任何Iterable,包含两个MyItem实例,其"name"属性的值为"foo"和"bar".如果任何其他属性不匹配,我真的不关心这个测试的目的。如果名称匹配,则测试成功。如果可能的话,我希望它是单行的。这是我想做的那种事情的一些“伪语法”。assert(listEntriesMatchInAnyOrder(myClass.getMyItems(),property("name"),new

java - 为什么 Java 的 Iterator 不是 Iterable?

为什么Iterator接口(interface)没有扩展Iterable?iterator()方法可以简单地返回this。这是故意的还是只是Java设计者的疏忽?如果能够像这样使用带有迭代器的for-each循环会很方便:for(Objecto:someContainer.listSomeObjects()){....}其中listSomeObjects()返回一个迭代器。 最佳答案 迭代器是有状态的。这个想法是,如果您调用Iterable.iterator()两次,您将获得independent迭代器-无论如何,对于大多数可迭代对

java - 为什么 Iterable<T> 不提供 stream() 和 parallelStream() 方法?

我想知道为什么Iterable接口(interface)不提供stream()和parallelStream()方法。考虑以下类:publicclassHandimplementsIterable{privatefinalListlist=newArrayList();privatefinalintcapacity;//...@OverridepublicIteratoriterator(){returnlist.iterator();}}它是Hand的一种实现,因为您可以在玩集换式卡牌游戏时手中有牌。基本上它包装了List,确保最大容量并提供一些其他有用的功能。最好直接将其实现为Li