String[] arr={"121","4545","45456464"};
Arrays.stream(arr).filter(s->s.length()>4).toArray(String[]::new);
でフィルタを使用すると、誰かが上記のコードでtoArray(String[]::new)
で起こっているの正確何を教えてもらえます。ストリーム
String[] arr={"121","4545","45456464"};
Arrays.stream(arr).filter(s->s.length()>4).toArray(String[]::new);
でフィルタを使用すると、誰かが上記のコードでtoArray(String[]::new)
で起こっているの正確何を教えてもらえます。ストリーム
toArray
は、あなたのケースでfilter
長さfilter
戻りますが、配列に変換されStream
ので、4以上であるすべての文字列の結果を含むString[]
を作成しています。むしろ
Arrays.stream(arr).filter(s -> s.length() > 4).forEach(System.out::println);
その文字列を印刷するには? –
'String []'に戻すのではなく、一般的に配列を出力する方法ですか?ストリームを印刷する方法を示す答えを更新しました –
値がStringに格納されているかどうか、そのStringの参照とアクセス方法は何ですか? –
String[]::new
配列にそれを格納するよりも、フィルタリングされた結果を印刷するために
は実際size -> new String[size]
と同じです。 filter
をStream
に適用した後に、新しい番号String[]
が要素数と同じサイズで作成されます。 Stream.toArray
のjavadocもString[]
タイプの新しい演算子への参照です。 Java-8構文です。 toArray
メソッドStreams
は、ストリームの要素が収集される配列のジェネレータとしてIntFunction<A[]>
をとります。これは書き込みと同じです:
Arrays.stream(arr).filter(s->s.length()>4).toArray(size-> { return new Integer[size]; });
ですから、この質問は 'filter'または約' toArray'ですか? –
[Java 8ストリームを配列に変換する方法は?](http://stackoverflow.com/questions/23079003/how-to-convert-a-java-8-stream-to-an-array) –