当前位置: 首页 > 面试题库 >

迭代Java 8中的枚举

百里伟
2023-03-14
问题内容

是否可以Enumeration使用Lambda表达式进行迭代?以下代码段的Lambda表示形式是什么:

Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();

while (nets.hasMoreElements()) {
    NetworkInterface networkInterface = nets.nextElement();

}

我在其中找不到任何流。


问题答案:

如果您不喜欢在Collections.list(Enumeration)迭代开始之前将全部内容复制到(临时)列表中的事实,则可以使用简单的实用程序方法来帮助自己:

public static <T> void forEachRemaining(Enumeration<T> e, Consumer<? super T> c) {
  while(e.hasMoreElements()) c.accept(e.nextElement());
}

然后,您可以简单地进行操作forEachRemaining(enumeration, lambda-expression);(注意该import static功能)…



 类似资料:
  • 我想知道,如何在Java8中使用流API迭代多级列表 根据Java8,我应该做如下的操作 我想要流利地做这件事(使用内部迭代)。任何解释都会很感激。

  • 我在迭代一个对象内的列表时遇到了一个问题,该对象内嵌在另一个映射中。我的目标是迭代这个列表并生成一个映射 ,我希望使用streams和lamdas来实现这一点。 我在上面看到了,我需要通过迭代FolderBo中的elementList从elementBo创建一个带有map 的映射。folderBo本身就在Modelbo的地图内。

  • 我有客户对象的列表。我想迭代列表并按1递增顺序。 我尝试了每个列表,但在这里我必须创建新列表并在其中添加值。 有没有更好的方法?我尝试使用streams,但它只是映射订单

  • 这可能是一个基本问题,但是有人能解释一下和之间的主要区别并给出一些例子吗?

  • 在Java8流中,允许我修改/更新内部的对象吗?为。: