Javaでのarray(配列)操作の方法の紹介!|arrayを正しく使いこなそう

- SE
- Javaでのarray(配列)はどのように使用するのでしょうか。
- PM
- 配列の宣言をするときに使用します。配列とは、同じ型のデータ集合を扱う入れ物です。
Javaでのarray(配列)操作の方法とは?
今回は、Javaの配列について説明します。
配列とは、同じ型のデータ集合を扱う入れ物です。
配列の宣言方法や、要素の取得方法、要素の追加方法、要素の存在確認、要素のソート方法などについて紹介します。
Javaの配列に興味のある方はぜひご覧ください。
宣言
Javaの配列を宣言する方法について紹介します。
型の宣言方法には以下の2種類があります。
1 2 3 4 5 6 7 |
① 型名 配列名[] = new 型名[要素数]; ② 型名 配列名 = { 初期化子 }; |
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public class Main { public static void main(String[] args) throws Exception { int[] array1 = new int[5]; array1[0] = 1; array1[1] = 2; array1[2] = 3; array1[3] = 4; array1[4] = 5; String[] array2 = {""item1"", ""item2"", ""item3"", ""item4"", ""item5""}; System.out.println(array1[2]); System.out.println(array2[3]); } } |
実行結果は以下のようになります。
1 2 |
3 item4 |
Javaの配列はこのように宣言します。
全要素の取得
Javaの配列の全要素を取得するには、for文や拡張for文などのループ構文を使用します。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public class Main { public static void main(String[] args) throws Exception { int[] array = new int[5]; array[0] = 1; array[1] = 2; array[2] = 3; array[3] = 4; array[4] = 5; // 配列の全要素出力 for(int i=0; i<array.length; i++) { System.out.println(array[i]); } } } |
実行結果は以下のようになります。
1 2 3 4 5 |
1 2 3 4 5 |
配列の全要素が取得できていることが分かります。
また、拡張for文を使用しても、同じように配列の全要素を取得できます。
1 2 3 4 5 |
for (int data: array){ System.out.println(data); } |
実行結果は同じになります。
このように、Javaの配列の全要素を取得するには、for文や拡張for文などのループ構文を使用します。
要素の追加
配列は宣言時に長さを指定しますので、その長さを超える要素を追加することはできません。
配列に要素を追加したい場合の解決策の一つとして、配列をコピーして長さの長い配列に代入するという方法があります。
配列のコピーには、arraycopyメソッドを使用します。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
public class Main { public static void main(String[] args) throws Exception { int[] array = new int[5]; array[0] = 1; array[1] = 2; array[2] = 3; array[3] = 4; array[4] = 5; int[] newArray = new int[10]; // arrayをnewArrayにコピー System.arraycopy(array, 0, newArray, 0, 5); newArray[5] = 6; newArray[6] = 7; newArray[7] = 8; newArray[8] = 9; newArray[9] = 10; // 配列の全要素出力 for (int data: newArray){ System.out.println(data); } } } |
実行結果は以下のようになります。
1 2 3 4 5 6 7 8 9 10 |
1 2 3 4 5 6 7 8 9 10 |
このように、Javaの配列はarraycopyメソッドを使用することで配列のコピーができます。
Listに変換
Javaでは、配列⇔Listに相互変換できます。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) throws Exception { String[] array = new String[5]; array[0] = ""item1""; array[1] = ""item2""; array[2] = ""item3""; array[3] = ""item4""; array[4] = ""item5""; // 配列をListに変換 List<String> list = Arrays.asList(array); // 要素の追加 list.add(""item6""); // UnsupportedOperationExceptionが発生 } } |
asListメソッドは固定長のListを返却しますので、addメソッドで要素を追加できません。
追加すると、UnsupportedOperationExceptionが発生します。
Listをさらに新しいListに格納することで、要素を自由に追加/削除できます。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) throws Exception { String[] array = new String[5]; array[0] = ""item1""; array[1] = ""item2""; array[2] = ""item3""; array[3] = ""item4""; array[4] = ""item5""; // 配列をListに変換 List<String> list = Arrays.asList(array); // 要素の追加 //list.add(""item6""); // UnsupportedOperationExceptionが発生 List<String> newList = new ArrayList<>(list); newList.add(""item6""); // Listの全要素出力 for (String data: newList){ System.out.println(data); } } } |
実行結果は以下のようになります。
1 2 3 4 5 6 |
item1 item2 item3 item4 item5 item6 |
要素の存在確認
Javaの配列に対して、特定の要素が含まれているか否かを確認したいケースがあると思います。
しかし、配列に対してはcontainsメソッドが使用できません。
その場合、いったんListに変換してからcontainメソッドを使用して存在確認できます。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import java.util.Arrays; public class Main { public static void main(String[] args) throws Exception { String[] array = new String[5]; array[0] = ""item1""; array[1] = ""item2""; array[2] = ""item3""; array[3] = ""item4""; array[4] = ""item5""; // 配列をListに変換し、containsメソッドで存在確認 if(Arrays.asList(array).contains(""item3"")) { System.out.println(""Found!""); } else { System.out.println(""Not Found!""); } } } |
実行結果は以下のようになります。
1 |
Found! |
このように、いったんListに変換してからcontainメソッドを使用して存在確認できます。
要素のソート
Javaの配列はソートすることもできます。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import java.util.Arrays; public class Main { public static void main(String[] args) throws Exception { String[] array = new String[5]; array[0] = ""item5""; array[1] = ""item4""; array[2] = ""item3""; array[3] = ""item2""; array[4] = ""item1""; // 配列のソート Arrays.sort(array); // 配列の全要素出力 for (String data: array){ System.out.println(data); } } } |
実行結果は以下のようになります。
1 2 3 4 5 |
item1 item2 item3 item4 item5 |
sortメソッドでソートされていることが分かります。
- SE
- Javeの配列を理解するには、宣言方法だけでなく、要素の追加方法や存在確認の方法などを知ることが大切なのですね。
- PM
- Javeのarrayの操作方法を理解できたら、実際にソースコードを書いてみましょう。
Javaの配列を正しくつかいこなそう
いかがでしたでしょうか。
Javaの配列について説明しました。
配列とは、同じ型のデータ集合を扱う入れ物です。
配列の宣言方法や、要素の取得方法、要素の追加方法、要素の存在確認、要素のソート方法などについて紹介しました。
ぜひご自身でソースコードを書いて、理解を深めてください。