1. ホーム
  2. java

Java 8で列挙を反復する

2023-07-18 06:30:40

質問

を繰り返し実行することは可能ですか? Enumeration を反復することは可能ですか?次のコードスニペットの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 機能)...