微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

对象的迭代器[]

如何解决对象的迭代器[]

您可以使用Arrays.asList

return Arrays.asList(items).iterator();

它只是将数组包装在列表实现中,以便您可以iterator()在其上调用方法

请注意,这种方法仅适用于对象数组。对于原始数组,您将必须实现自己的迭代器(例如,使用匿名类)。

从Java 8开始,您还可以使用Arrays.stream开箱即用的迭代器(并且如果items是或int[],也可以使此代码进行编译: double[]``long[]

return Arrays.stream(items).iterator();

尽管您将无法使用原始数据类型charfloat并且short因为没有相应的流实现。但是,您可以使用以下解决方法

return IntStream.range(0, items.length).mapToObj(i -> items[i]).iterator();

解决方法

有没有一种方法来获取数组的迭代器?像这样:

class MyCollection implements Iterable<String> {

   String[] items;

   @Override
   public Iterator<String> iterator() {
      return items.iterator(); //obviously,it doesn't compile.
   }

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。