Java 8の関数プログラミング


前言
このシリーズのブログで紹介しているのはJDK 8の関数式プログラミングです。最初の問題が現れました。なぜJDK 8が現れますか?
  JAVAはもういいです。強大になりましたか?多くの会社が使うのは1.6です。1.7です。1.8必要がありますか?更に間もなく世に出るJDK 9に言及しないでください、魯迅の《持ってきます主義》はこのように言ったことがあります。
  JAVAがこんなに完璧だったら、なぜ他の言語の隆盛があるのでしょうか?したがって、絶対的に完璧なものはありません。JDK 8はその後のバージョンを含めて、JAVA言語を絶えず改善して、より良い方向に向かわせます。その過程に向かって、欠点があります。しかし、間違いなく長所があります。JAVA 8の前に、効率的な操作が不足しています。並列プログラムコードを書くのは、手間がかかります。しかし、JAVA 8では、簡単にコードを修正するだけで、コードをマルチコアCPUで完璧に実行できるので、この効果を達成するために、JDKクラスのライブラリを作成するには、言語レベルで既存のJAVAを修正する必要があります。したがって、JAVAでLambada表達式を追加するのは、待ったなしの任務です。しかし、様々な事情で計画は最終的に2014年のJDK 8に延期されました。
集合類を効率的に操作するために、並列計算や操作の目的を実現するためには、JDK 8からの新しい文法を勉強しなければなりません。また、面相オブジェクトのプログラミングの制限から少し飛び出すべきです。しかし、前の手書きのコードよりも、このような学習は十分に必要であり、時間とコストを節約して、同時に間違いにくいです。巨人の肩の上に立って、これはいかなる人がすべて参考にしなければならない方法で、どうして毎回JDKバージョンの変更はすべて何年を使いますか?oracleのエンジニアはバカではありません。特にJDKライブラリを作る上で、他人のコードを借りるのは恥ずかしい行為ではありません。新しいコードはもっと効率的で、読みやすくなります。この新しいコードはもっと注目されています。実現された業務ロジックではなく、システムを導入したとしても、Lambadaを導入したとしても、ある意味では、これは依然として対象に向けた一つの実現方法であり、注目されているのは実現メカニズムではなく、コードの維持が容易であり、間違いも容易ではない。
関数プログラミングとは何ですか?
関数プログラミング、この言葉は2つの名詞から構成され、関数、プログラミングされます。プログラミングという言葉は説明しなくてもいいです。みんなこれを作っています。関数は、実は単独でこの言葉を抜き出して、同じくよく知らないで、関数は何ですか?中学校の数学は関数の勉強を始めました。もちろんここで話題を紹介します。数学とプログラミング言語の関係はこの話題の後で時間があります。

F(x)=x+1F(x)=x+1
 これは一つの関数です。だから、関数式プログラミングに対する理解はそれぞれ違っていますが、核心思想はすべて関数に基づいています。つまり、変数ではない値と関数を使って、パラメータを処理して、他の値にマッピングします。上の図のF(x)=x+1のように、1を入れて、f(1)は永遠に2、1->f(1)に等しく、1をf(1)にマッピングして、f(1)は永遠に2に等しいです。 
もちろん、関数プログラムは、多くの場合、私はここで簡単な紹介を行うだけでなく、このシリーズのブログの目的は、関数とは何ですか?
Your first Lamda expression
Java 8の使用を開始すると、まず、匿名クラスをlamda式で置換し、Runnableインターフェースを実現することが匿名クラスの最良の例である。Java 8の前のrunnableの実装方法を見ると、4行のコードが必要ですが、lambar表現を使うには1行のコードしか必要ありません。私たちはここで何をしましたか?それは、匿名のクラス全体をコードブロックで置換することです。

// Java 8  :
new Thread(new Runnable() {
  @Override
  public void run() {
  System.out.println("Before Java8, too much code for too little to do");
  }
}).start();
//Java 8  :
new Thread( () -> System.out.println("In Java8, Lambda expression rocks !!") ).start();
出力:
too much code,for too little to do
Lamda expression rocks!
この例はJava 8 lamband表現の文法を示している。ラダを使って下記のコードを書くことができます。

(params) -> expression
(params) -> statement
(params) -> { statements }
例えば、あなたの方法がパラメータを修正したり、書き換えたりしないなら、コンソールでのみ何かを印刷すると、こう書くことができます。

() -> System.out.println("Hello Lambda Expressions");
あなたの方法が二つのパラメータを受信すると、次のように書くことができます。

(int even, int odd) -> even + odd
ちなみに、一般的にはlamda表現の内部変数の名前を短くします。コードをより短くして、同じ行に置くことができます。したがって、上記のコードでは、変数名はa、bまたはx、yがeven、oddよりも良いです。
そこでまとめたフォーマットは
params=パラメータ、your Code=あなたのコード、result=戻り値

(params,params) -> {your Code}
パラメータが一つか一行のコードしかないなら、括弧を省略してもいいです。

params -> your Code
戻り値があれば、はい。

(params) -> {return results}
同じように、このreturnは一行だけなら、簡単に書いてもいいです。例えば、

x -> x+1
これはイコール

(x) -> {return x+1}
以上は小编が皆さんに绍介したJava 8の関数式プログラミングです。皆さんに助けてほしいです。ここでも私たちのサイトを応援してくれてありがとうございます。