エンジニアの将来って?

現在7年目のCOBOL→Java→C#エンジニアが、将来への考えや勉強のアウトプット、たまに腎臓について書くブログです

【Java8】mapメソッドを使ってみよう【ラムダ式】

こんにちは。たいら(@tairaengineer2)です。
今回の記事はJava8で追加されたラムダ式の中の1つのmapメソッドについてのアウトプット記事です。

mapメソッドとは

このストリームの要素に指定された関数を適用した結果から構成されるストリームを返します。

Stream (Java Platform SE 8)から引用させて頂きました

説明の通り、mapメソッドは要素に指定された処理をした後、結果をストリームにして返します。
また中間操作でもあります。

それでは、早速mapメソッドを使ってみましょう!

フォルダ構成

フォルダ構成は↓のようになっています。

f:id:Tairax:20180820203641p:plain

Java

プログラムの概要を説明します。
Javaプログラムを2つ作りました。
1つは、動物エンティティです。
もう1つは、動物エンティティのリストを生成して、表示させるプログラムです。

Animal

package lambdaPractice;

/**
 * 動物クラス
 *
 */
public class Animal {
	/** 動物の名前 */
	private String name;
	/** 動物の種類 */
	private String genus;

	/**
	 * 動物の名前を取得する
	 * @return 動物の名前
	 */
	public String getName() {
		return name;
	}

	/**
	 * 動物の名前を設定する
	 * @param name
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * 動物の種類を取得する
	 * @return
	 */
	public String getGenus() {
		return genus;
	}

	/**
	 * 動物の種類を設定する
	 * @param genus
	 */
	public void setGenus(String genus) {
		this.genus = genus;
	}


}

MapSample

package lambdaPractice;

import java.util.ArrayList;
import java.util.List;

/**
 * mapメソッドを練習するクラス
 *
 */
public class MapSample {
	public static void main(String[] args) {
		// 動物リストを生成
		List<Animal> animalList = new ArrayList<>();

		// トラオブジェクトを生成し、動物リストに追加
		Animal tiger = new Animal();
		tiger.setGenus("トラ");
		tiger.setName("きば");
		animalList.add(tiger);

		// イヌオブジェクトを生成し、動物リストに追加
		Animal dog = new Animal();
		dog.setGenus("イヌ");
		dog.setName("ポチ");
		animalList.add(dog);

		// ネコオブジェクトを生成し、動物リストに追加
		Animal cat = new Animal();
		cat.setGenus("ネコ");
		cat.setName("タマ");
		animalList.add(cat);

		// 動物リストを表示
		animalList.stream()
				.map(e -> e.getGenus() + ":" + e.getName())
				.forEach(e -> System.out.println(e));
	}
}

実行結果

トラ:きば
イヌ:ポチ
ネコ:タマ

このようにmapメソッドは、要素を変更することができます!

まとめ

いかがだったでしょうか?
この記事が皆さんのご参考になれば幸いです。

ではでは~(・ω・)ノシ