Java:从集合中获取第一项

2022-08-31 04:54:20

如果我有一个集合,例如 ,如何取出第一个项目?我可以叫一个,先拿它,然后扔掉。有没有一种不那么浪费的方法可以做到这一点?Collection<String> strsIteratornext()Iterator


答案 1

看起来这是最好的方法:

String first = strs.iterator().next();

好问题...起初,这似乎是对界面的疏忽。Collection

请注意,“first”并不总是返回您放入集合中的第一个内容,并且可能只对有序集合有意义。也许这就是为什么没有调用的原因,因为顺序不一定保留。get(item)

虽然它可能看起来有点浪费,但它可能没有你想象的那么糟糕。实际上只包含索引信息到集合中,而不是通常整个集合的副本。调用此方法确实会实例化对象,但这实际上是唯一的开销(不像复制所有元素)。IteratorIterator

例如,查看该方法返回的类型,我们看到它是 .这是一个内部类,它只直接访问列表的元素,而不是复制它们。ArrayList<String>.iterator()ArrayList::Itr

只要确保你检查返回,因为它可能是空的或取决于实现。iterator()null


答案 2

Iterables.get(yourC, indexYouWant)

因为实际上,如果您使用的是收藏夹,则应使用Google收藏夹。