【初心者Unity】ArrayListのメソッドを使いこなそう!
はじめに
今回は、前回までの「ArrayList」・「List」のお話に引き続き、ArrayListの便利メソッドをご紹介します。
前回は、「生徒が10人いて、全員のテストの点数をそれぞれ記録したが、その後急遽転校生が来て、11個目のデータを格納する必要が出た」という例を用いて配列をご紹介しました。この例では、配列を使った場合、データが11個入る配列を新たに作成しなければならないところが、ArrayListを使うと要素が10個入っているArrayListに11個目の要素を加えることができましたよね。今回は、そんな便利なArrayListをより便利にしてくれるメソッドたちをご紹介します!
実際にArrayListのメソッドを使ってみる
前回の例でメソッドを活用したものが↓になります。
ArrayList scoresList = new ArrayList(){ 80,90,70,50,80,60,100,40,80,90 }; //↓これこれ!インデックス10(11番目)にデータを格納している「Addメソッド」! scoresList.Add(70);
いかがでしょうか?まあそんなに難しくなさそうですよね?他のメソッドもみんな書き方は同じです。「リスト名.メソッド名(引数)」の形です。使いやすそうですね。
それではこの公式を抑えた上で他のメソッドを見ていきましょう!
他のメソッド紹介
それでは、「Add」の他にはどのようなメソッドがあるのかここでは紹介していきます。
Contains
こちらは、指定した値がArrayListの中に存在するかを判定してくれるメソッドです。判定ですので、if文等と組み合わせて使います。
今回は、ArrayList「scoresList」の中に「40」点の人がいるか判定してみましょう。
ArrayList scoresList = new ArrayList(){ 80,90,70,50,80,60,100,40,80,90 }; if ( scoresList.Contains( 40 ) ) { Debug.Log( “40はscoresListに含まれています。” ); } else { Debug.Log( “40はscoresListに含まれていません。” ); }
このプログラミングでは、scoresListの中に40が含まれているため、「40はscoresListに含まれています。」が出力されます。
IndexOf
こちらは、指定した値がListの中の何番目に位置しているのか(インデックス)を教えてくれるメソッドになります。もしも存在しなかった場合は「-1」を返してくれます。
今回は、ArrayList「scoresList」の中に「90」点の人と「0」点の人のインデックスを調べてみましょう。
ArrayList scoresList = new ArrayList(){ 80,90,70,50,80,60,100,40,80,90 }; int index1 = scoresList.IndexOf( 90 ); int index2 = scoresList.IndexOf( 0 ); Debug.Log( index1 ); Debug.Log( index2 );
このプログラミングでは、scoresListの中に「90」が1番目と9番目に存在しています。今回の様に2つ以上存在する場合は、一番最初のインデックスのみ返ってきます。また、「0」は存在しません。よって、「1」と「-1」が出力されます。
Count
おまけとなりますが、こちらはメソッドではありません。ArrayList内のデータの数を返してくれる変数になります。
今回は、ArrayList「scoresList」内のデータの数を調べてみましょう。
int[] scores = { 80,90,70,50,80,60,100,40,80,90 }; Debug.Log(scoresList.Count);
このプログラミングでは、scoresList内のデータの数をコンソール上に表示しています。よって、10という数字がコンソール上に出力されます。
おわりに
みなさんいかがでしたでしょうか。「ArrayList」はデータを柔軟に管理するのみならず、メソッドを活用することでさらにプログラミングの幅を広げることができます。ぜひみなさんArrayListを活用して快適なプログラミングライフを過ごしてください。