1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

【Java入門】listの初期化を1行で終わらせるたった1つの方法とは?

Pocket

プログラムの構成は、おおよそ初期化と代入となっています。
何事もまずは初期化と覚えておいてほぼ間違いありません。
これまでListについてやってきましたが、もちろんListもこの形に当てはまります。
今回は、Listの初期化と追加(add)を1行で済ませる方法を伝授します。
プログラムは、暗黙のルールで同じことを繰り返すことはあまりよくないこととされています。
何故なら、しなくてもいい処理をしなければならないといったことになってしまうからです。
あまりにも無駄なソースコードを書いてしまうと、無駄な処理を発生させ、結果人によってはイライラすることにもなります。
今のうちからでも基本をしっかり理解した上で、スマートなコードを書く癖をつけておきましょう。

Listの初期化の基本

List<データ型>変数名=new ArrayList<データ型>();
まずは、Listの初期化の基礎をしっかり理解しておきましょう。
基本形は、タイトル通り、List<データ型>変数名=new ArrayList<データ型>();と書き、その後に変数名.add()と追加していくのでしたね。
サンプルプログラムは以下の通りです。

確かにこのプログラムは正確で間違いではありません。
が、なかなかlistと3回も打つには少し面倒ではないでしょうか?
まだ3回ならしもこれが10回と続くものならちょっとイライラしそうですよね?
なんとか1回で済ませる方法、実はあります!

できるなら初期化とaddを1行で済ませたい

Arrays.asListを使う

実は、初期化とaddの処理を1行にする方法が、Arrays.asListを使う方法です。
このArrayls.asListを使うと先程の長ったらしいプログラムが見事すっきり1行に収まりました。

このポイントですが、必ずnew ArrayListの()内にしてください。
何故()内に収めなければいけないのでしょうか?

Arrays.asListの不思議なところ

Arrays.asListの使い方によっては、不思議なことが起こるのです。
元々Arrays.asListの意味は、固定リストになります。
固定リストというのは、サイズが決まっているので後から修正が来ても追加も削除もできないリストのことです。
それなのに、何故Arrays.asListを使うのかと疑問に持つ人も多いでしょう。
実はこれがポイントなのですが、使い方によって意味合いが変わってくるのです。
主な使い方は次の2箇所に分かれます。

List<データ型>変数名=Arrays.asList();と使うと固定サイズのリストに

このArrays.asListは、実はnew ArrayListを使わなくてもいい使い方がこの使い方になります。

これでリストの出来上がりで1行で書けてしまうのですが、この場合の意味合いは、固定サイズのリストになってしまいます。
固定リストになってしまうと、後々の修正が一切できなくなります。
このリストに追加しようとすると以下のエラーがでます。

ここでのエラーは、Arrays.asListにlist.addはできないので修正してくださいという意味です。

List<データ型>変数名=new ArrayList<データ型>();の()内で使うと通常のリストに

そして今回のテーマでもあるnew ArrayList()の()内で使うことによって、本来なら固定リストの意味合いをもつArrays.asListが、通常のリストになってしまうのです。
これまたなんと不思議なことです。
つまり、先程の使い方でエラーが出てたのに、エラーが出ず、普通のリストのように追加もできてしまいます。
それが以下のプログラムです。

通常のリストの扱いなので、直後にaddしても、きちんとリストに追加されているのがよくわかりますね。

おわりに

プログラムは、なるべく短いソースコードが好まれます。
この点はJavaに限らず他の言語でも同じことが言えるので、しっかり頭にいれておきましょう。
本来ならば、数行書かないと行けないものが、1行になると相手に大変喜ばれます。
今回は、Listの初期化を1行にする方法をお伝えしました。
この方法は覚えておいて損はありません。
日頃から、これを1行にするにはと考える癖をつけておきましょう。
今日も一歩前進!頑張っていきましょう。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

おすすめスクール

全国30校舎で展開されるヒューマンアカデミーのWeb講座は修了者数4万人超、講師とカリキュラムの満足度がどちらも9割を超えています。就職や転職に必要なレベルの実務スキルを身に付けられます。

WebCampは、一ヶ月の短期集中でWebデザイン、プログラミングスキルを習得するスクールです。学習効果の高い反転授業(自主学習でインプット、講義でアウトプット)を採用し、年間1000名を輩出しています。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

イチ押しランキング

1リナックスアカデミー

リナックスアカデミー

2システムアーキテクチュアナレッジ

システムアーキテクチュアナレッジ

3WEB塾

WEB塾
ページ上部へ戻る