注目記事

【Javaコード入門】コレクションフレームワーク_⑤asListメソッド

配列からリストに変換する – asListメソッド

public static List asList(T… a)
 T:任意の型
 a:変換する配列

Javaには、言語仕様に組み込まれたしくみとして、配列が用意されています。しかし、お作法的には、まずはコレクションフレームワークを優先して利用すべきです。理由は、以下の通りです。

  • コレクションフレームワークの方が機能性にも優れ、用途に応じてさまざまなクラスが提供されている
  • クラスライブラリであることから他のクラスとの親和性も高い

もちろん、それでもやむを得ず、配列を使わなければならない局面はあるでしょう。そのような場合にも、Arrays.asListメソッドを利用することで、配列をリスト(コレクション)に変換する手段が提供されています。

CollAsList.java


package com.example.mynavi.collection;
 
import java.util.Arrays;
import java.util.List;
 
public class CollAsList {
  public static void main(String[] args) {
    var str = new String[] { "Windows", "Linux", "macOS" };
    var list = Arrays.asList(str);
 
    list.set(0, "ウィンドウズ");
    System.out.println(list);
    // 結果:[ウィンドウズ, Linux, macOS]
    System.out.println(Arrays.toString(str));
    // 結果:[ウィンドウズ, Linux, macOS]
 
    list.add("Android");    // 結果:エラー
    list.remove(0); // 結果:エラー
  }
}

asListメソッドの機能は、あくまで配列をコレクションフレームワークで利用できるように、リストの皮を被せるものです。よって、リストへの変更はそのまま元の配列にも反映されますが、追加/削除はUnSupportedOperationException例外を発生します。

コレクションフレームワーク_目次
コレクションフレームワーク
コレクションを初期化する
synchronizedList/synchronizedMap/synchronizedSetメソッド
ArrayListクラス
asListメソッド
toArrayメソッド
LinkedList
HashMap
TreeMap
NavigableMap
HashSet
ArrayDeque

監修

山田祥寛(有限会社 WINGSプロジェクト)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NEC にてシステム企画業務に携わるが、2003年 4 月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト(https://wings.msn.to/)」の代表でもある。主な著書に『改訂 3 版JavaScript 本格入門』(技術評論社)、「独習シリーズ(C#・Python・PHP・Ruby・JSP&サーブレットなど)」(翔泳社)、「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravel など)」(Amazon Kindle)など。売り上げの累計は100万部を超える。