配列とコレクションの違いについてまとめようと思います。
配列は複数のデータをひとつにまとめておく方法。
※事前に配列のサイズを決める必要がある
また連続したデータとなります。
画像 参照:http://www.mlab.im.dendai.ac.jp/programming/basic/02/#%281%29
配列とコレクションの違い
配列を使ったコード
//配列を確保
String[] names = new String[3];
//3人追加
names[0]="田中";
names[1]="鈴木";
names[2]="斎藤";
System.out.println(names[1]);
ArrayLIst(コレクション)を使ったコード
import java.util.ArrayList;
//ArrayListを確保
ArrayList<String>names = new ArrayList<String>();
//3人を追加
names.add("田中");
names.add("鈴木");
names.add("斎藤");
System.out.println(names.get(1));
配列とArrayListの使い方は似ていますが、以下の三つが特に異なります。
1、import文を記述する
ArrayListをはじめとするコレクションリストはjava.utilクラスに属するため、通常はimport文を用いることが一般的です。
2、不等号のカッコを使用し格納するものの方を使用する
**配列ではString[]**でしたがArrayListではArrayList<String>のように記述します。
またArrayList<String>の部分はArrayList<HogeHoge>のように好きなオブジェクトを格納することができます。
3、確保(宣言時)の時にサイズを指定せず、要素は随時追加が可能!
配列は宣言する時にサイズが幾つ必要か記述し、後からサイズを増やすことはできません。
一方ArrayListをはじめとするコレクションリストクラスは、宣言の際に要素のサイズを指定しません。なぜならば、データを追加しようとした時に、随時自動的に追加されていくからです。
デメリットもあります。それはメモリ効率が配列の方がいいことや点数などのintの値をそのまま入れないことです。
ArrayList<int>と書くことはできず、ArrayList<Integer>のようにインスタンスに変換してあげなければなりません。つまりインスタンスは全て格納可能です。
ArrayListの使いかた
ArrayListはこれで宣言することができる。
ArrayList<String> sakana = new ArrayList<String>();
以下ArrayListを用いたSampleコードを示す
import java.util.ArrayList;
class ArrayTest{
public static void main(String args[]){
//ArrayListを確保
ArrayList<String> sakana = new ArrayList<String>();
sakana.add("金魚");
sakana.add("出目金");
sakana.add("アンコウ");
sakana.add("サバ");
//格納した情報を全て表示
for(int i=0;i < sakana.size();i++){
System.out.println(sakana.get(i));
}
//指定した場所の値を上書きする
//1は実際には2番目の値ということになる
//この場合は出目金→うなぎ
sakana.set(1,"うなぎ");
//空行をはさむ
System.out.println();
//格納した情報を全て表示
for(int i=0;i < sakana.size();i++){
System.out.println(sakana.get(i));
}
}
}
金魚
出目金
アンコウ
サバ
金魚
うなぎ
アンコウ
サバ
今まで配列を使ってきた自分からは新鮮なものに感じました。おわり。
引用
スッキリわかるJava入門 実践編 第二版
著者 中山清喬
とてもわかりやすく入門編も実践編も共にオススメの書籍です。