2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JAVA ArrayList

Last updated at Posted at 2015-11-25

■ArrayListの宣言と初期化
ArrayList<型> 変数名 = new ArrayList<型>();

■リスト内の指定された位置にある要素を返します。
get
public E get(int index);

■リストの最後に、指定された要素を追加します。
add
public boolean add(E o);

■補足
「E」は(Element:要素)
「T」は(Type:型)

import java.util.ArrayList;

public class Test04 {
	public static void main(String[] args) {
		ArrayList<String> names = new ArrayList<String>();
		names.add("田中");
		names.add("松田");
		names.add("前田");

		System.out.println(names.get(1));

	}

}

■実行結果
松田

Generics

ArrayList.png

ラッパークラスをプリミティブ型に自動変換

AutoBoxing機能によりIntegerがIntに自動変換される

■例

		ArrayList<Integer> points = new ArrayList<Integer>();
		points.add(45);
		points.add(18);
		points.add(87);
		for (int i : points) {
			System.out.println(i);

■実行結果
45
18
87
changeToWrapperClass.png

AutoBoxingによりラッパークラスCharacterがプリミティブ型charに自動変換される

■例

		ArrayList<Character> moji = new ArrayList<Character>();
		moji.add('A');
		moji.add('B');
		for (char i : moji) {
			System.out.println(i);
		}

■実行結果
A
B

ArrayList 例(参考程度)

■Test041.java

import java.util.ArrayList;
import java.util.Iterator;

public class Test041 {
	public static void main(String[] args) {
		// AutoBoxingによりラッパークラスCharacterがプリミティブ型charに自動変換される
		ArrayList<Character> moji = new ArrayList<Character>();
		moji.add('A');
		moji.add('B');
		moji.add('C');
		Iterator<Character> it = moji.iterator();
		System.out.println("イテレータを用いたリスト要素の取出し");
		while (it.hasNext()) {
			Character e = it.next();
			System.out.println(e);
		}
		System.out.println(moji.toString());

		System.out.println("拡張for文");
		for (char i : moji) {
			System.out.println(i);
		}

		System.out.println("ArrayListを使ったコード");
		for (int i = 0; i < moji.size(); i++) {
			System.out.println(moji.get(i));

		}

		
		for (char i : moji) {
			System.out.println("拡張for文→" + i);

		}
		moji.add(0, 'C');
		System.out.println("AをCに挿入した→" + moji.get(0));

		moji.set(1, 'D');
		System.out.println("BをDに代入した→" + moji.get(1));

		System.out.println("格納されてる要素数を返す→" + moji.size());
		System.out.println("要素を順に処理するイテレータを返す→" + moji.iterator());
		System.out.println("要素数が0であるか判定する→" + moji.isEmpty());
		System.out.println("'D'は何番目の位置に含まれているか調べる→" + moji.get(1) + "は"
				+ moji.indexOf('D') + "番目の位置に含まれている");

		System.out.println("0番目の値のremove前は" + moji.get(0));
		moji.remove(0);
		System.out.println("0番目の値Cのremove後は" + moji.get(0)
				+ "。なぜなら削除したら前に詰められるから");
		System.out.println(moji.get(0));
		// ;; moji.get(1));
		System.out.println("文字すなわち char どうしを演算子で結合しようとしても、"
				+ "char は 文字コード すなわち 数値 として扱われるから" + moji.get(0) + moji.get(1)
				+ "とDBと表示されず、数値で表示されてしまう。");
		System.out.println(moji.get(0) + moji.get(1));

		System.out.println("メソッドは、オブジェクトを文字列として返します");
		System.out.println(new StringBuilder().append(moji.get(0))
				.append(moji.get(1)).toString());

		StringBuilder sb = new StringBuilder();
		sb.append(moji.get(0));
		sb.append(moji.get(1));
		String sb2 = sb.toString();
		System.out.println("省略していない→" + sb2);


		System.out.println(moji.get(0) + "と" + moji.get(1));

		System.out.println("ArrayList、mojiの要素数はゼロであるか判定した結果→" + moji.isEmpty());
		System.out.println("Dが含まれているか→" + moji.contains('D'));

	}

}

■Test041.java 実行結果
イテレータを用いたリスト要素の取出し
A
B
C
[A, B, C]
拡張for文
A
B
C
ArrayListを使ったコード
A
B
C
拡張for文→A
拡張for文→B
拡張for文→C
AをCに挿入した→C
BをDに代入した→D
格納されてる要素数を返す→4
要素を順に処理するイテレータを返す→java.util.ArrayList$Itr@19e0bfd
要素数が0であるか判定する→false
'D'は何番目の位置に含まれているか調べる→Dは1番目の位置に含まれている
0番目の値のremove前はC
0番目の値Cのremove後はD。なぜなら削除したら前に詰められるから
D
文字すなわち char どうしを演算子で結合しようとしても、char は 文字コード すなわち 数値 として扱われるからDBとDBと表示されず、数値で表示されてしまう。
134
メソッドは、オブジェクトを文字列として返します
DB
省略していない→DB
DとB
ArrayList、mojiの要素数はゼロであるか判定した結果→false
Dが含まれているか→true

ArrayList 例②(参考程度)

■Test04.java

import java.sql.Date;
import java.util.ArrayList;

public class Test04 {
	public static void main(String[] args) {
		ArrayList<String> names = new ArrayList<String>();
		names.add("田中");
		names.add("松田");
		names.add("前田");

		System.out.println(names.get(1));

		String a = names.get(0);
		System.out.println(a);

		ArrayList<String> countries = new ArrayList<String>();
		countries.add("Sweden");
		countries.add("Greece");
		countries.add("Bulgaria");
		countries.add("Lithuania");
		countries.add("Latvija");

		String country = countries.get(3);
		System.out.println(country);
		System.out.println(countries.get(1));

		String b = countries.get(0);
		System.out.println(b);

		// 整数を配列に格納
		ArrayList<Integer> number = new ArrayList<Integer>();
		number.add(13);
		number.add(15);
		System.out.println(number.get(0));

		// 小数点を配列に格納
		ArrayList<Double> decimal = new ArrayList<Double>();
		decimal.add(3.15);
		decimal.add(0.12);
		decimal.add(7.7);
		System.out.println(decimal.get(1));

		// 1文字だけを配列に格納
		ArrayList<Character> letter = new ArrayList<Character>();
		letter.add('A');
		letter.add('N');
		letter.add('O');
		System.out.println(letter.get(2));

		// ある日付を配列に格納
		Date date = new Date(1316622225935L);
		Date date1 = new Date(31920291332L);
		ArrayList<Date> dateArray = new ArrayList<Date>();
		dateArray.add(date);
		dateArray.add(date1);
		System.out.println(dateArray.get(1));
		System.out.println(dateArray.get(0));

		// AutoBoxing機能によりIntegerがIntに自動変換される
		ArrayList<Integer> points = new ArrayList<Integer>();
		points.add(45);
		points.add(18);
		points.add(87);
		for (int i : points) {
			System.out.println(i);
		}

		ArrayList<Integer> points1 = new ArrayList<Integer>();
		points1.add(10);
		points1.add(11);
		points1.add(12);
		for (Integer i : points1) {
			System.out.println(i);
		}
		// AutoBoxingによりラッパークラスCharacterがプリミティブ型charに自動変換される
		ArrayList<Character> moji = new ArrayList<Character>();
		moji.add('A');
		moji.add('B');
		for (char i : moji) {
			System.out.println(i);
		}
		moji.add(0, 'C');
		System.out.println("AをCに挿入した→" + moji.get(0));

		moji.set(1, 'D');
		System.out.println("BをDに代入した→" + moji.get(1));

		System.out.println("格納されてる要素数を返す→" + moji.size());
		System.out.println("要素を順に処理するイテレータを返す→" + moji.iterator());
		System.out.println("要素数が0であるか判定する→" + moji.isEmpty());
		System.out.println("'D'は何番目の位置に含まれているか調べる→" + moji.get(1) + "は"
				+ moji.indexOf('D') + "番目の位置に含まれている");

		System.out.println(moji.get(0));
		moji.remove(0);
		System.out.println(moji.get(0) + moji.get(1));
	}

}

■Test04.java 実行結果
松田
田中
Lithuania
Greece
Sweden
13
0.12
O
1971-01-05
2011-09-22
45
18
87
10
11
12
A
B
AをCに挿入した→C
BをDに代入した→D
格納されてる要素数を返す→3
要素を順に処理するイテレータを返す→java.util.ArrayList$Itr@19e0bfd
要素数が0であるか判定する→false
'D'は何番目の位置に含まれているか調べる→Dは1番目の位置に含まれている
C
134

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?