wataruの部屋

20代駆け出しシステムエンジニア 低学歴な人生を歩んで来たため仕事させてくれる社会に感謝しています。 ブログの内容は映画やプログラミングに関することなど...

2章<配列>

まずはポイントから

・配列は参照型

・配列の要素を超えて参照すると実行時エラーが発生します

・配列の宣言はこう データ型 変数名  = new データ型[要素数]

・配列の要素数は.lengthをでとれますint型で返却されます

・可変配列としてArrayListクラスがある

 

 

配列はプリミティブ型(基本データ型)と参照型を格納することができますが

配列自体は参照型になります 

 

配列に対して要素を超えて参照しようとすると実行時エラーになります

Arrayindexoutofboundsexceptionが返される

コンパイルエラーではありません。

配列のNullの箇所を参照しようとするとNullPointerExceptionが返される

ヌルポっていうみたいです。

 

配列の宣言は[データ型 変数名 = new データ型[要素数];]です

なので

 int array = new int[1];

これで要素数が2の配列が作成されます。

new intは要素数の設定みたいなので

int array = {1,2,3};みたいに初期値をいれてもOK

 

ただし、new句で初期化と同時に初期値を入れるのはできない

配列の要素数は.lengthで取得できる 3が返される

f:id:koko55120:20190217001447p:plain

.lenghtで返される値をint型です。

 

javaでは可変配列ArrayListがサポートされている

 

 

ArrayListクラスを使うにはjavaAPIのjava.util.ArrayLsitをインポートする必要がある

f:id:koko55120:20190217001834p:plain

 

import文はclass宣言より上に書くよ

 

ArrayListの宣言

ArrayList<データ型> 変数名 = new ArrayList<データ型>();

 

ListクラスはArrayListと継承関係にあり

List<Integer>  list = new ArrayList<>();でも作成できる 

 

左辺の<>と右辺の<>のデータ型は必ず同じでなければならない

宣言したデータ型以外の型のものは入れることができない

 

例 String型で宣言したArrayListにint型を入れることはできない

 

ArrayListの初期サイズは10で作成される

 

<>はジェネリクスといいArrayListにどの型を格納するか宣言できる

別にジェネリクスを記載しなくても宣言できるが値を入れようとすれば

実行時に警告がでる。また値を取り出すときにキャスト(型変換)を行う必要がある

 

左辺の<>はデータ型を記載するがjava7からは冗長であるため右辺にはデータ型を省略してよい

これを公式ではないがダイヤモンド演算子という

 

ArrayListは参照型でしか宣言できない基本データ型で宣言するとエラーになる

基本データ型を扱うためにもラッパークラスというのが存在する

Array<Integer> hoge = new ArrayLsit<>

これでInt型も扱うことができる

 

ArrayListに値を入れるには.add(格納したいデータ)メソッドを使う

 

array.add("テスト"); 

 

ArrayListの値を取得するには.get(添え字)メソッドを使う。

 

array.get("Test");