【问题标题】:Getting values from an iterable object without using a loop不使用循环从可迭代对象中获取值
【发布时间】:2012-12-14 14:46:54
【问题描述】:

在 Java 中,如何在不循环的情况下从可迭代对象中检索元素?

【问题讨论】:

  • 这取决于数据集的类型。
  • 您检查过您的数据集的 API 吗?
  • 请在此处发布真实代码。

标签: java loops iterable


【解决方案1】:

这是一种双刃剑。由于我们不知道Vartype 是什么,因此我们无法隐含地告诉您它是否不可变。

如果它没有改变,你可以把它当作一个单例并访问它的第一个元素。

var.get(0);

如果尺寸可以改变,那么你会想继续使用增强型。

【讨论】:

    【解决方案2】:
    if(dataset.size() == 1)
       number = dataset.get(0); //if collections
    
    if(dataset.length == 1)
    number = dataset[0];    //if array
    

    【讨论】:

    • @hexacyanide 你正在使用它,你不知道吗?查看任何类似的值,或者您可以通过一个 for-each 循环来计算它的大小。
    • 我见过Iterable<T>的无限实现——hasNext()的迭代器总是返回true,当然,它们没有任何sizelength或@987654327 @ 或任何字段/方法。可能作者爱上了 Scheme 的无限列表之类的东西,但事实是你有时会遇到这样的事情。
    【解决方案3】:

    鉴于您可以编写 for-each 循环,您的 datasetIterable<T>

    Vartype var = dataset.iterator().next();
    

    如果dataset为空会抛出异常。

    【讨论】:

      猜你喜欢
      • 2015-07-20
      • 1970-01-01
      • 2018-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      • 1970-01-01
      相关资源
      最近更新 更多