【Java】Listの各要素の型を一括変換する方法(Guavaライブラリ編)

java

Listの要素の型を変換する方法を紹介します。
具体的には、Listの要素がIngeterをLongへ変更する方法です。

Listの要素の型を変更するために、Google LibraryのGuavaライブラリを使用しています。
GuavaライブラリはList以外にも、様々な場面で使うことが出来ます。(apache commonsのようなイメージです。)
このページでは、Guavaライブラリの導入方法も記述しておきます。

[スポンサーリンク]

Guavaライブラリの導入方法

Mavenの設定ファイル(pom.xml)へ追加します。
最新のバージョン情報は以下で確認して下さい。

<dependency>
	<groupId>com.google.guava</groupId>
	<artifactId>guava</artifactId>
	<version>15.0</version>
</dependency>

Listの各要素の型を一括変換するプログラム

public static void main(String[] args) throws Exception {
	List<Integer> list = new ArrayList<>();
	list.add(new Integer(1000));
	list.add(new Integer(2000));
	list.add(new Integer(3000));

	List<Long> listLong = Lists.transform(list, new Function<Integer, Long>() {
		@Override
		public Long apply(Integer arg0) {
			return new Long(arg0);
		}
	});
	System.out.println("List<Integer>からList<Long>へ変換しました。");
}

実行結果

>実行結果
ListからListへ変換しました。

解説

Lists.transformの第二引数で、Functionの無名クラスを作っています。
Functionのジェネリクスへは、<Integer, Long> のように、左が変換前の型、右が変換後の型となります。
applyメソッドで、Integer型からLong型へ変換しています。

今回のサンプルソースでは、Integer型からLong型へ変換していますが、他の型への変換ももちろん可能です。

さいごに

Listの各要素(ジェネリクス)を変更するには、for文で回してListをつめかえる、、、、なんて面倒なことはしなくても大丈夫です。
Guavaライブラリを使って楽をしましょう。

Guavaライブラリは、List(コレクション)以外にも使える便利なライブラリです。
今後、当ブログでもGuavaライブラリの便利技について取り上げていきたいと考えています。
それでは!