如果我有一个集合,例如Collection<String> strs
,我怎样才能取出第一个项目?我可以打电话Iterator
,取第一个next()
,然后抛出Iterator
离开。有没有一种比较浪费的方法呢?
看起来这是最好的方法:
String first = strs.iterator().next();
很好的问题......起初,这似乎是对Collection
界面。
请注意,“first”并不总是返回您放入集合中的第一个内容,并且可能仅对有序集合有意义。也许这就是为什么没有get(item)
调用,因为不一定会保留顺序。
虽然这看起来有点浪费,但可能并没有你想象的那么糟糕。这Iterator
实际上只包含集合中的索引信息,通常不是整个集合的副本。调用此方法会实例化Iterator
对象,但这实际上是唯一的开销(不像复制所有元素)。
例如,查看返回的类型ArrayList<String>.iterator()
方法,我们看到它是ArrayList::Itr
。这是一个内部类,它只是直接访问列表的元素,而不是复制它们。
请务必检查返回的内容iterator()
因为它可能是空的或null
取决于实施。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)