収入UPの転職を目指す方へ

【Java 8で追加】ラムダ式とは?メリットや使い方をご紹介!

  • 2018/03/07
【Java 8で追加】ラムダ式とは?メリットや使い方をご紹介!

大規模な開発に使われることの多いJavaでは、なるべく簡潔で読みやすいプログラムを書くことが求められます。そのようなとき役立つのがJava 8で追加された「ラムダ式」です。ラムダ式でプログラムを記述することで、コード量を減らし読みやすくすることができます。今回はラムダ式の概要やそのメリット、使い方をご紹介します。

目次

ラムダ式とは?

ラムダ式とは?

C#などのプログラミング言語では既に導入されていたラムダ式ですが、Java 8からJavaにも実装されるようになりました。ラムダ式の特徴は、メソッドを変数のように扱える点にあります。

まず、ラムダ式の基本書式をご紹介します。

【書式】

 
(メソッドの引数列) -> {処理内容}

2つの整数値を引数に取り、その和をメソッドに渡すケースは、ラムダ式で以下のように書くことができます。

【ラムダ式による記述】

 
 (int x, int y) -> {return x + y;}

上記の例では引数の型宣言を行っていますが、以下のように省略することが可能です。

【引数の型宣言を省略】

 
 (x, y) -> {return x + y;}

今回のように処理内容が1行の記述で済む場合、戻り値の中かっこを省略して、さらにシンプルにまとめることができます。

【1行の記述で済む場合の中かっこの省略】

 
 (x, y) -> return x + y;

ラムダ式のメリット(何ができる?)

ラムダ式のメリット(何ができる?)

ラムダ式のメリットは、匿名クラス(一度だけしか使わないようなクラス)を用いる場合よりも関数型インターフェース(抽象メソッドを1つだけ持つインターフェース)の記述が簡潔になることにあります。ラムダ式で記述することによって、プログラムが冗長になることを防ぎ、より本質的な部分の記述に集中することができるようになるのです。

ラムダ式の例

ラムダ式の例

それでは、実際にラムダ式による関数型インターフェースの記述を見ていきましょう。参考のため、最初に匿名クラスによる記述をご紹介します。

以下のプログラムは、実行すると「HelloWorld!」と出力します。

【匿名クラスによる記述例】

interface InterfaceTest{
 public String method(String name);
}
public class Anonymous{
 public static void main(String[] args){
  InterfaceTest h = new InterfaceTest(){
   public String method(String name){
    return "Hello" + name;
   }
  };
  System.out.println(h.method("World!"));
 }
}

【ラムダ式による記述例】

interface InterfaceTest{
 public String method(String name);
}

public class Lambda{
 public static void main(String[] args){
  InterfaceTest h = name -> { return "Hello" + name; };
  System.out.println(h.method("World!"));
 }
}

匿名クラス外部で定義されている変数はfinalが指定されている(値を変更できない)か、実質的にfinal(finalが指定されているとみなされ、値を変更できない)であり、変数の値を匿名クラス内部で変更することはできませんでした。
これはラムダ式についても同様です。ラムダ式の外部で定義されている変数の値はラムダ式の内部で変更することはできません。

ラムダ式は必須知識になる?

必ずしもプログラムをラムダ式で記述しなければならないわけではありません。今までの記述方法ももちろん可能です。しかし、ラムダ式と同じくJava 8で追加された機能「Stream API」ではラムダ式を前提としているため、ラムダ式を使えるようになっておく必要があります。

また、開発現場では自分でコーディングをするだけでなく、他の人が書いたコードを読む機会も多くあります。他人のプログラムにはラムダ式が含まれている可能性があるので、ラムダ式に慣れておくことが求められるでしょう。

おわりに

今回ご紹介したラムダ式はJava 8で追加され、今では広く使われています。Javaは歴史あるプログラミング言語ですが、時代とともに進化を続けています。プログラミングの世界では日々新しい変化が起きており、スクールなどで技術情報や業界動向をキャッチアップしていくことが大切です。

インターネット・アカデミーでは、現場の第一線で活躍するプロ講師の指導を受けることができます。Javaのプログラミングスキルを磨いてエンジニアやプログラマーになりたいという方に、Java講座やITエンジニア総合コースの受講をおすすめします。

大規模Webシステムをオラクル認定校で学ぶ

Java講座

Javaのプログラミングの基礎から、顧客管理システムやファイル共有システム、さらには大規模なWebシステムの開発まで学び、未経験から即戦力のJavaプログラマーを目指すことができます。

相談してコースを選びたい方はカウンセラーに無料で相談

カウンセラーに無料で相談

※無理な勧誘は一切ありません

無料で相談してみる