Listの初期化について
配列とは
Listというタイトルであれば、「配列のことか」と考える方もいらっしゃるでしょう。
しかし「配列」「List」は厳密には違いがありますので、配列についても少しだけ紹介しておきます。
配列とは、簡単に書くとデータの塊のことです。
プログラムにおける「配列」というのは情報を記憶しておくための変数の1つで、複数の箱が連なっているもの想像してください。
それぞれの箱に1つずつ値が入っており、複数の箱を1つの塊として扱うものであるという風に考えることで特定の変数の中に複数の値を入れることが出来るということです。
よって、配列を使うことによって、複数のデータを一つの変数に格納することができます。例えば、テストのスコアや会社の売り上げなどをまとめることなどがあります。今回はJavaを例に挙げて説明していきたいと思います。
Listとは…
Javaにおける「List」とは、重複した要素を含むことができる順序をつけられたコレクションのことで、「シーケンス」とも言います。Listでは追加や削除をしてもデータがきちんと整理され、順番に並べられますので、インデックスで要素を挿入したり要素にアクセスする位置を自由に変更することができます。またListは重複する要素を持つことができ、複数のnull要素を持つこともできます。
配列とListの違いは…
配列とListの最大の違いについて紹介しておきます。まず、配列は一度要素の数を決めたら変更ませんが、Listは後から要素の数を変えることができます。
また、配列は宣言時に配列にするデータ型は決まっていますが、Listは決めることもできますし、決めないようにもできるのです。つまり、Listの方が配列より柔軟に扱うことができるということです。
Listの初期化の方法について…①
ListはCollection(コレクション)をルーツとして、そこから枝分かれしたインターフェースですので、実際に使う場合はListインターフェースを実装したクラスを使う必要があります。
一番代表的な実装クラスは可変長の配列のArrayListクラスのようなクラスです。他にも実装クラスはありますが、今回はArrayListクラスを使って説明します。見たことがある方も多いクラスではないでしょうか。
実装の書き方は
List<String> example = new ArrayList<String>();
※インスタンスを生成する際には「new演算子」を用いる
<String>の部分をジェネリクスといい、このListに入るデータ型を指定するためのものです。<String>以外にも、<Integer>や<自分で定義したクラス名>などを指定することができますが、基本データ型は指定することができないという点に注意してください。
また上記のようにジェネリクスの指定はしければならないわけではありませんが、指定するようにしましょう。
具体的なコードを書いてみましょう。
public static void main(String[] args){
List<String> example = new ArrayList<String>(); (⇦List型の初期化)
example.add("Hello."); (⇦要素の追加)
example.add("I love you.");
example.add("I like dog.");
example.remove(example.indexOf("I love you.")); (⇦要素の削除)
System.out.print(example);
}
}
実行結果 … Hello.I like dog.
Listの初期化の方法について…②
他にも、Arrays.asList を使って初期化時に値を追加するという方法があります。
初期化とaddの処理が1行で書けて、要素を並べるだけで良いのでとても便利な方法です。
構文は List<データ型名> オブジェクト名 = new ArrayList<データ型名>(Arrays.asList(要素[0], 要素[1], …)); です。
具体的にコードを書いてみます。
public class Main {
public static void main(String[] args) {
List<String> example = new ArrayList<String>(Arrays.asList("こんにちは,", "こんばんは"));
for(int i = 0; i < example.size(); i++) { (⇦順番に取り出す)
System.out.print(example.get(i));
}
}
}
実行結果 … こんにちは,こんばんは
固定リストとは何かと言うと後々の修正が一切できなくなるということで、「add」で要素を追加したり、「remove」で要素を削除することができなくなるということです。このリストに追加しようとするとエラーがでます。これが初期化の方法①で紹介した内容との違いになります。
最後に…
今回はJavaを例としてListの初期化について紹介しました。Javaだけでなくプログラムのコードは短い方が見やすく理解もしやすいので好まれています。
したがって、できるだけ簡潔に見やすいコードが書けるように練習していきましょう。
ただしそれぞれの使い方をしっかり勉強して、ミスを防ぐように気をつけてくださいね。