Javaの配列の使い方でお悩みなあなたへ。この記事では、配列の宣言や初期化、長さ(要素数)、要素の追加などの使い方をサンプルを交えてご紹介します。配列に似たリストについてもご紹介します。
Javaでは、複数のデータを扱うためのデータ構造として配列、リスト及びマップがある。それぞれの特徴を次表に示す。
配列 | リスト | マップ | |
---|---|---|---|
生成時に要素の数を決める必要があるか | Yes | No | No |
生成後に要素の数を変更できるか | No | Yes | Yes |
順序付けられているか | Yes | Yes | No |
配列を宣言する構文を次に示します。
データ型 変数名[];
boolean foo[];
int bar[];
double baz[];
配列を初期化する構文を次に示します。
変数名 = new データ型[要素の数];
配列の宣言と初期化を行う例を次に示します。
int a[];
a = new int[10];
1行にまとめて記述することもできます。
int a[] = new int[10];
初期値を与えて初期化する方法もあります。初期値で与えた値の数だけ要素が作成されます。
データ型 変数名[] = { カンマで区切った値のリスト };
int a[] = { 1, 2, 3 };
配列の要素の数を知るには、変数名.length を参照します。
int i = a.length;
配列をコピーするには、System.arraycopy メソッドを使用します。
arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
オブジェクトの配列 src から dest にコピーします。
int a[] = { 1, 2, 3 };
int b[] = new int[3];
System.arraycopy(a, 0, b, 0, a.length);
java.util.Arrayは配列を操作するクラスである。
配列の中に一致する要素があるか調べる。
String[] s = { "foo", "bar", "baz" };
if (Arrays.asList(s).contatins("bar"));
{
// 存在する
} else {
// 存在しない
}
配列を昇順にソート(並び替え)するには、java.util.Arraysクラスのsortメソッドを使う。
static void sort(byte[] a)
static void sort(char[] a)
static void sort(short[] a)
static void sort(int[] a)
static void sort(long[] a)
static void sort(float[] a)
static void sort(double[] a)
static void sort(Object[] a)
import java.util.Arrays;
public class Example {
public static void main(String[] args) {
int[] a = {5, 1, 4, 2, 3};
System.out.println(Arrays.toString(a));
Arrays.sort(a);
System.out.println(Arrays.toString(a));
}
}
Javaの配列は初期化したときに要素数が決まり、後から要素を追加することはできない。
要素を後から追加したい場合は、配列ではなくjava.util.Listクラスを使う。
import java.util.List;
public class Example {
public static void main(String[] args) {
List<int> l = new ArrayList<int>();
l.add(10);
}
}
空のリストを生成するには、java.util.Collections#emptyListを使う。
List<String> stringList = Collections.emptyList();