ArrayList는 자바의 컬렉션 프레임워크의 일부로 List 인터페이스
를 상속받은 클래스 중 하나이다.
ArrayList는 한번 생성하면 크기가 고정되는 배열과 다르게 부족한 공간을 자동으로 조정해주는 선형리스트 이다.
배열은 데이터를 추가, 삭제 시 반복문으로 인덱스를 한칸씩 밀거나 당기는 식으로 공간을 조절하지만 ArrayList는 이 과정을 자동으로 처리해주어 사용이 편리하다.
ArrayList<Integer> list = new ArrayList<Integer>();
ArrayList<String> list2 = new ArrayList<>(); // 타입 생략 가능
ArrayList<Person> list3 = new ArrayList<>(); // 타입으로 클래스도 가능
선언시 자료의 안정성을 위해 제네릭(Generic)방식으로 타입을 미리 지정해주어 같은 타입의 객체들만 리스트에 추가하도록 할 수 있다.
ArrayList<Integer> list = new ArrayList<>();
list.add(1); // 데이터 추가
list.add(3);
list.add(1, 2); // 1번 indexdp 2 추가
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.remove(2); //2번 인덱스의 데이터 삭제
list.remove(list.indexOf(1)); //1을 가지고 있는 인덱스를 리턴하여 삭제
list.clear(); //리스트의 모든 데이터 삭제
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(2, 4, 6, 8, 10));
System.out.println(list.get(3)); //3번 인덱스에 위치한 값 출력, 8
System.out.println(list.get(0)); //0번 인덱스에 위치한 값 출력, 2
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(2, 4, 6, 8, 10));
System.out.println(list.size()); //5
list.add(12);
System.out.println(list.size()); //6
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
int index = list.indexOf(2); //원하는 값의 인덱스를 리턴, 없는 경우 -1 리턴, 1
boolean contains = list.contains(3); // 특정 값이 있는지 확인, true
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
System.out.println(list); //list 전체 출력
System.out.println(list.get(3)); //3번 인덱스에 위치한 값 출력
for (int item: list) {
System.out.print(item + " "); //1 2 3 4 5
}
Iterator iter = list.iterator(); //Iterator를 사용하는 경우
while (iter.hasNext()) {
System.out.print(iter.next() + " "); //1 2 3 4 5
}