私はインタフェースをインスタンス化することはできませんが、Streams
に関する本からチュートリアルを行っているうちに、私は混乱しました。インターフェイスのメソッドが何かを返すとAPIが意味することは何ですか?
私は理解できない部分を強調するコードの部分を使用します。
は、マッピングされたストリームの内容で、このストリームの各要素を置き換えるの結果からなるストリームを返します:方法
flatMap
、APIにするとクリックしたときに、それを言うために// count occurences of each word in a Stream<String> sorted by word Map<String, Long> wordCounts = Files.lines(Paths.get("Chapter2Paragraph.txt")) .map(line -> line.replaceAll("(?!')\\p{P}", "")) .flatMap(line -> pattern.splitAsStream(line)) .collect(Collectors.groupingBy(String::toLowerCase, TreeMap::new, Collectors.counting()));
提供されたマッピング関数を各要素に適用することによって生成される。マップされた各ストリームは、その内容がこのストリームに配置された後に閉じられます。マッピングされたストリームがnullの場合、代わりに空のストリームが使用されます。
それで、それはどういう意味ですか?私はそれが何をしているのかちょっと理解していますが、私はそれがどのように裏で働くのか分かりません。 APIがこのケースで返答するとオブジェクトを返すか、それとも現在のストリームを置き換えることを意味しますか?さらに、Streams
を使用している場合、コンパイラは実際にこれらの要素のオブジェクトを作成し、完了したら終了しますか?
さらに、上記のコードから、私が正しいことを確認したいだけです。 Map<String, Long> wordCounts
変数を使用している場合、ストリームの終了時に最終結果が型推論に正確に従わなければならないことを意味しますか?
あなたはドキュメントの意味を聞いていますか、それとも舞台裏で何をしていますか?それらは2つのほぼ直交した質問です。 –
この質問を読んで、私はJavaバージョン8に移行する前に、Pythonジェネレータについて勉強したことをうれしく思います。 –
@MadPhysicist何が起こっているのかを知りたいのですが、他の言語をよりよく理解するために? – Scorpiorian83