【Java開発】第10回 ArrayList

#初めに

皆さん。こんにちは！

DreamHanksの254cmです。

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

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

前回の記事は[【Java開発】第9回 多次元配列](https://qiita.com/DreamHanks/items/d562d15cdce1772f6642)です。

##ArrayListクラス
###ArrayListクラスとは？

ArrayListは配列と似たようなものであり、便利な機能が追加されてより柔軟に使えるクラスです。

ArrayListは配列とは異なり、長さを決めなくても使えるし、格納されるたびに長さが増えます。

ArrayListはオブジェクトしか格納できません。

宣言の書き方

```java
ArrayList<格納したいデータのデータ型> リスト名 = new ArrayList<格納したいデータのデータ型>();
```

**サンプル**

```java
ArrayList<String> values = new ArrayList<String>();
```

###ArrayListの主なメソッド

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/708649/e35b9520-667b-4219-e8c7-df64cd654c25.png)													

####arrayList.add()メソッド	

```java
public class ArraySample {								
								
	public static void main(String[] args) {							
		ArrayList<String> names = new ArrayList<String>();						
								
		names.add("ムギ");	//0番目に格納					
		names.add("ココ");	//1番目に格納					
		names.add("レオ");	//2番目に格納					
								
		System.out.println(names);						
								
		names.add(1, "マナ");	//1番目に挿入					
								
		System.out.println(names);						
	}							
								
}								
```							
								
配列の場合、値が既に存在する位置に新しい値を挿入するには、	

```java
String x = a[1];								
a[1] = "マナ";								
a[2] = x;
```														
上記のように既存の値を直接移す必要があります。								
								
しかし、ArrayListの場合、値を特定の位置に挿入する場合、既存の値を自動に運んでくれます。

**出力結果**

```
[ムギ, ココ, レオ]
[ムギ, マナ, ココ, レオ]
```
####arrayList.size()メソッド

```java
public class ArraySample {			
			
	public static void main(String[] args) {		
		ArrayList<String> names = new ArrayList<String>();	
			
		names.add("ムギ");	//0番目に格納
		names.add("ココ");	//1番目に格納
		names.add("レオ");	//2番目に格納
			
		System.out.println(names.size());	//namesの長さを出力
	}		
}			
```
**出力結果**

```
3
```

####arrayList.set()メソッド	

```java
public class ArraySample {				
				
	public static void main(String[] args) {			
		ArrayList<String> names = new ArrayList<String>();		
				
		names.add("ムギ");	//0番目に格納	
		names.add("ココ");	//1番目に格納	
		names.add("レオ");	//2番目に格納	
				
		System.out.println(names);		
				
		names.set(1, "マナ");	//1番目に更新	
				
		System.out.println(names);		
	}			
}				
	
```

**出力結果**

```
[ムギ, ココ, レオ]
[ムギ, マナ, レオ]
```

####arrayList.get()メソッド				

```java
public class ArraySample {				
				
	public static void main(String[] args) {			
		ArrayList<String> names = new ArrayList<String>();		
				
		names.add("ムギ");		
		names.add("ココ");		
		names.add("レオ");		
				
		System.out.println(names.get(0));	//0番目の値を出す	
		System.out.println(names.get(1));	//1番目の値を出す	
		System.out.println(names.get(2));	//2番目の値を出す	
	}			
}	
```

**出力結果**

```
ムギ
ココ
レオ
```

####arrayList.remove()メソッド			

```java
public class ArraySample {			
			
	public static void main(String[] args) {		
		ArrayList<String> names = new ArrayList<String>();	
			
		names.add("ムギ");	
		names.add("ココ");	
		names.add("レオ");	
			
		names.remove(1); //1番目を削除、2番目が1番目になる	
			
		System.out.println(names.get(0));	//0番目の値を出す
		System.out.println(names.get(1));	//1番目の値を出す
	}		
}
```
arrayListは値の削除機能が存在します。

特定の位置の値が削除されると、その以後の値はすべて1マスずつ前に移動されます。

**出力結果**

```
ムギ
レオ
```

####arrayList.isEmpty()とarrayList.clear()														

```java
public class ArraySample {														
														
	public static void main(String[] args) {													
		ArrayList<String> names = new ArrayList<String>();												
														
		names.add("ムギ");												
		names.add("ココ");												
		names.add("レオ");												
														
		if(names.isEmpty()) {												
			System.out.println("namesは空いてます。");											
		}												
		else {												
			System.out.println("namesは空いていません。");											
		}												
														
		names.clear(); //すべて削除												
														
		if(names.isEmpty()) {												
			System.out.println("namesは空いてます。");											
		}												
		else {												
			System.out.println("namesは空いていません。");											
		}												
														
	}													
}
```
														
出力結果		

```
namesは空いていません。														
namesは空いてます。	
```
#終わりに

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

次回はJavaの[static](https://qiita.com/DreamHanks/items/7892e78e833bbfad09e4)を学びましょう。

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

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