フィルタストリームのオブジェクトのいくつかのフィールドをプリントアウト

高リンギング:

名前、色や年齢を持っているフォックスクラスがあるとしましょう。のは、私はキツネのリストを持っている、と私はその色の緑であるそれらのキツネの名前を、プリントアウトしたいと仮定しましょう。私はそうするためにストリームを使用します。

田畑:

  • 名前:プライベート文字列
  • 色:プライベート文字列
  • 年齢:プライベート整数

私は、フィルタリングとSYSOUTを行うには、次のコードを書かれています:

foxes.stream().filter(fox -> fox.getColor().equals("green"))
     .forEach(fox -> System.out::println (fox.getName()));

しかし、私のコードでは、いくつかの構文上の問題があります。

何が問題ですか?どのように私はそれを整理する必要がありますか?

Ousmane D .:

あなただけのものを使用し、ラムダとメソッド参照を組み合わせることはできません。

foxes.stream()
     .filter(fox -> fox.getColor().equals("green"))
     .forEach(fox -> System.out.println(fox.getName()));

またはその他:

foxes.stream()
     .filter(fox -> fox.getColor().equals("green"))
     .map(Fox::getName) // required in order to use method reference in the following terminal operation
     .forEach(System.out::println);

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=182548&siteId=1