配列からリストに変換する – 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万部を超える。