【发布时间】:2012-12-14 14:46:54
【问题描述】:
在 Java 中,如何在不循环的情况下从可迭代对象中检索元素?
【问题讨论】:
-
这取决于数据集的类型。
-
您检查过您的数据集的 API 吗?
-
请在此处发布真实代码。
在 Java 中,如何在不循环的情况下从可迭代对象中检索元素?
【问题讨论】:
这是一种双刃剑。由于我们不知道Vartype 是什么,因此我们无法隐含地告诉您它是否不可变。
如果它没有改变,你可以把它当作一个单例并访问它的第一个元素。
var.get(0);
如果尺寸可以改变,那么你会想继续使用增强型。
【讨论】:
if(dataset.size() == 1)
number = dataset.get(0); //if collections
if(dataset.length == 1)
number = dataset[0]; //if array
【讨论】:
Iterable<T>的无限实现——hasNext()的迭代器总是返回true,当然,它们没有任何size或length或@987654327 @ 或任何字段/方法。可能作者爱上了 Scheme 的无限列表之类的东西,但事实是你有时会遇到这样的事情。
鉴于您可以编写 for-each 循环,您的 dataset 是 Iterable<T>。
Vartype var = dataset.iterator().next();
如果dataset为空会抛出异常。
【讨论】: