【Java開発】第8回 配列

#初めに

皆さん。こんにちは！

DreamHanksの254cmです。

今回は配列について説明していきます。

Java記事のまとめは[こちら](https://qiita.com/DreamHanks/items/6b1996e1f8ed66bbd456)です。

前回の記事は[【Java開発】第7回 継承](https://qiita.com/DreamHanks/items/d09a6d494563954780de)です。

##配列																															
###・配列とは？																															
同じデータ型の値をまとめて一つの変数として扱うために使うものです。																														
配列の値は順番に並べていて、特定の位置の値を取り出したりすることもできる																															
																															
1から5までの値をjavaプログラムで表すと

```java
int value1 = 1;																															
int value2 = 2;																															
int value3 = 3;																															
int value4 = 4;																															
int value5 = 5;
```

上記のようになります。
																														
上記の場合は変数が5個なので十分表すこどができますが、

100個、1000個を表す場合はかなり難しいし、面倒くさいです。

しかし、上記のサンプルを配列で表すと

```java
int[] numbers = {1, 2, 3, 4, 5};
```
一つの行で簡単に表すことができました。


###・配列の書き方

####配列の宣言とインスタンス化

```java
データ型 配列変数名[] = new データ型[要素数];
																
データ型[] 配列変数名 = new データ型[要素数];
```

上記のように二つの書き方がありますが、どっちの方法を使用しても構いません。

**サンプル**

長さが3である整数型配列を宣言して初期化すると、

```java
int values[] = new int[3];
```
上記のようになります。

他の方法で同じように宣言してみると、

```java
int[] values = new int[3];
```

上記のようになります。

####宣言と同時に初期化

```java
データ型 配列変数名[] = {値1, 値2, ... };
```
変数の宣言と同じように宣言と初期化を同時に行うことができます。

もちろん、宣言と初期化を別々で行うこともできます。

**サンプル**

宣言と初期化を同時に行う場合は

```java
int[] foo = {1, 2, 3, 4, 5};
```
になります。

宣言と初期化を別々で行う場合は

```java 
int[] foo = new int[5];

foo = {1, 2, 3, 4, 5};
```

先ほどのサンプルのように要素を一発で初期化することもできますし、

```java
int[] foo = new int[5];

foo[0] = 1;
foo[1] = 2;
foo[2] = 3;
foo[3] = 4;
foo[4] = 5;
```
上記のように一つ一つ初期化することもできます。

しかし、普段は上記のようにいちいち書かなく、ループを使って処理します。

###・配列のインデクス

配列のインデクスとは配列の要素の位置を表すもの数です。

配列のインデクスは「**０から配列の長さ-１**」まで存在します。

**サンプル**

```java
int a[]= {12, 4, 6, 23, 99}; 
```
上記の配列は長さが5なので、インデクスは0から4まで存在します。

つまり、上記の配列は

```
インデクス0番目：12
インデクス1番目：4
インデクス2番目：6
インデクス3番目：23
インデクス4番目：99
```
が格納されています。

###・配列の要素の使い方

配列の各要素はインデクスで指定して出します。

**書き方**

```java
配列変数名[出したい要素のインデクス];
```

**サンプル**

```java
int a[]= {12, 4, 6, 23, 99}; 

System.out.println(a[0]);
System.out.println(a[1]);
System.out.println(a[2]);
System.out.println(a[3]);
System.out.println(a[4]);
```

上記のサンプルを実行してみると、

```
12
4
6
23
99
```
上記のようになります。

**サンプル2**

```java
public class ArraySample {		
		
	public static void main(String[] args) {	
		String[] colors = {"red","orange","yellow","green","blue","navy","purple"};
		
		for(int i = 0 ; i < colors.length; i++) {
			System.out.println(colors[i]);
		}
	}	
}		

```

上記サンプルの実行結果は

```
red
orange
yellow
green
blue
navy
purple
```
になります。

上記の結果が逆順で出力されるようにサンプルを修正します。

**サンプル3**

```java
public class ArraySample {					
					
	public static void main(String[] args) {				
		String[] colors = {"red","orange","yellow","green","blue","navy","purple"};			
					
		for(int i = colors.length -1; i >= 0; i--) {			
			System.out.println(colors[i]);		
		}			
	}				
}					

```

出力結果は

```
purple
navy
blue
green
yellow
orange
red
```
になります。

**サンプル4**

```java
public class ArraySample {						
						
	public static void main(String[] args) {					
		int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};				
		int sum = 0;				
						
		for(int i = 0; i < arr.length; i++) {				
			if(i == 2) {			
				continue;		
			}	
			sum += arr[i];			
		}	
		System.out.println(sum);				
	}					
}
```

上記のサンプルを実行してみると

```
52
```
になります。

###・length

lengthは配列に内蔵されているメソッドで、配列の長さを返します。


```java
public class Array04 {		
 		
	public static void main(String[] args) {	
		int[] foo = new int[10];
		System.out.println("配列の要素数：" + foo.length);
	}	
}
```
上記のサンプルを実行してみると

```
配列の要素数：10
```

になります。

#終わりに

今回の記事は以上になります。

次回はJavaの[多次元配列](https://qiita.com/DreamHanks/items/d562d15cdce1772f6642)を学びましょう。

私たちの最新の記事は[こちら](http://blog.dreamhanks.com/java%e5%85%a5%e9%96%80%e8%ac%9b%e5%ba%a7/)で確認することができます。

ご覧いただきありがとうございます。