文系プログラマーのプログラミング備忘録

Java、競プロ、数学などについて書いてます

ArrayListを使ってみる

docs.oracle.com


ArrayListクラスはサイズ変更可能な配列です。サイズを超えて要素を追加しようとした場合には、配列と違ってサイズを自動で増やしてくれます。ところで、競プロでは Map や Set をよく使いますが、この ArrayList を使った記憶はほとんどなく、配列で事足りてしまう場面が多いように思うのは僕だけでしょうか。ちなみに ArrayList の古いバージョンには Vector というものがあり、今回解く問題のタイトルも vector となっていますが、現在はあまり使われていないそうです。


今回は、AIZU ONLINE JUDGE にある以下の問題で ArrayList を使ってみたいと思います。




judge.u-aizu.ac.jp


空の配列に対して、以下の3種類の操作を施していく問題です。


・末尾に x を挿入
・末尾の要素を削除
・p 番目の要素を出力


import java.util.*;

class Main {
	static Scanner sc = new Scanner(System.in);
	public static void main(String[] args) {
		
		int n = sc.nextInt();
		ArrayList<Integer> list = new ArrayList<>();
		
		for (int i=0; i<n; i++) {
			int mode = sc.nextInt();
			if (mode == 0) {
				list.add(sc.nextInt());
			}
			else if (mode == 1) {
				System.out.println(list.get(sc.nextInt()));
			}
			else if (mode == 2) {
				list.remove(list.size()-1);
			}
		}
		
	}
}