イニシャライザーによる初期化
全要素が同じ型の配列をイニシャライザーで初期化する書き方。type
はプリミティブ型でも参照型でもよい。
type[] arrayName = {emelent1, emenent2, ...};
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import java.util.Arrays; public class ArrayInit { public void initializer() { int[] intArray = {0, 2, 4, 6}; System.out.println(Arrays.toString(intArray)); // [0, 2, 4, 6] String[] stringArray = {"zero", "two", "four", "six"}; System.out.println(Arrays.toString(stringArray)); // [zero, two, four, six] } public static void main(String[] args) { ArrayInit app = new ArrayInit(); app.initializer(); } } |
newによる初期化
new
による配列インスタンスの生成の書き方。type
はプリミティブ型でも参照型でもよい。
type[] arrayName = new type[length];
以下の例では、配列を生成した後に一つずつ要素を定義している。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import java.util.Arrays; public class ArrayInit { public void initByNew() { int[] intArray = new int[4]; intArray[0] = 0; intArray[1] = 2; intArray[2] = 4; intArray[3] = 6; System.out.println(Arrays.toString(intArray)); // [0, 2, 4, 6] } public static void main(String[] args) { ArrayInit app = new ArrayInit(); app.initByNew(); } } |
new
による初期化直後の値はプリミティブ型ならそれぞれのデフォルト値、参照型ならnull
になる。
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 31 32 33 34 |
import java.util.Arrays; public class ArrayInit { public void defaultValues() { boolean[] boolArray = new boolean[4]; System.out.println(Arrays.toString(boolArray)); // [false, false, false, false] int[] intArray = new int[4]; System.out.println(Arrays.toString(intArray)); // [0, 2, 4, 6] double[] dblArray = new double[4]; System.out.println(Arrays.toString(dblArray)); // [0.0, 0.0, 0.0, 0.0] char[] charArray = new char[4]; System.out.println(Arrays.toString(charArray)); // [, , , ] String[] strArray = new String[4]; System.out.println(Arrays.toString(strArray)); // [null, null, null, null] Object[] objArray = new Object[4]; System.out.println(Arrays.toString(objArray)); // [null, null, null, null] } public static void main(String[] args) { ArrayInit app = new ArrayInit(); app.defaultValues(); } } |
newによる初期化とイニシャライザー
配列宣言時ではなく、宣言済みの配列変数をイニシャライザーで初期化する書き方。
単にイニシャライザーで代入しようとするとエラーになるので、new
による配列の生成とイニシャライザーによる定義を同時に行う。
1つ目のint[]
に関してはイニシャライザーによる初期化と同じだが、2つ目のString[]
のように一度宣言された変数に対して新たな配列で初期化する場合に有効。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import java.util.Arrays; public class ArrayInit { public void newWithInitializer() { int[] intArray = new int[] {0, 1, 2}; System.out.println(Arrays.toString(intArray)); // [0, 1, 2] String[] strArray = null; strArray = new String[] {"A", "B", "C"}; System.out.println(Arrays.toString(strArray)); // [A, B, C] } public static void main(String[] args) { ArrayInit app = new ArrayInit(); app.newWithInitializer(); } } |