Collection Framwork - ArrayList

14962 단어 JavaTILbasicJava

ArrayList 란??

ArrayList는 Collection 프레임워크의 List인터페이스의 대표적인 구현 클래스이다.

일반배열과 같이 순차리스트이며 인덱스로 내부 데이터를 관리한다는점이 유사하지만

생성할때 크기를 정하는 배열과 달리 ArrayList는 객체들이 추가될때마다 크기가 늘어난다는 특징을 가지고있다.

ArrayList객체를 생성하면 10개의 객체를 저장할 수 있는 초기용량을 가지고있고 저장되는 객체 수가 늘어나면 용량이 자동으로 증가한다.

ArrayList 선언

ArrayList list = new ArrayList(); //이 경우 모든 Object클래스를 객체로 저장할 수 있다.

ArrayList<Student> student = new ArrayList<Student>(); //Student객체만 저장가능

ArrayList<String> str = new ArrayList<String>(); //문자열만 저장가능

ArrayList<Integer> num = new ArrayList<Integer>(); //정수만 저장가능

ArrayList<Integer> num2 = new ArrayList<Integer>(Arrays.asList(1,2,3)); //생성시 [1,2,3]으로 초기화

ArrayList의 타입은 객체타입이므로 기본자료형을 쓸수 없으므로 <>안에 int를 객체화시킨 Wrapper 클래스 Integer를 선언해야한다. 이것을 Generic(제너릭)이라고 한다.

ArrayList 추가

ArrayList<Integer> list = new ArrayList<Integer>(); //int만 저장가능한 ArrayList선언

list.add(1); // 맨뒤에 값 추가

list.add(1,10); //index 1에 10 추가

list.add("abc"); //Generic으로 int타입만 받도록 선언했으므로 문자열을 추가하면 컴파일에러

add메소드를 사용하면 ArrayList에 값을 추가하고 추가여부를 boolean타입으로 반환한다.

ArrayList.add(index, obj) 메소드를 사용하면 특정 인덱스에 값을 추가할 수 있는데, 이때 특정 인덱스에 값이 추가되면 그 인덱스부터 마지막 인덱스까지 모두 1씩 밀려나게된다.

이 경우 데이터가 너무 많거나 중간에 값을 추가할 일이 많다면 성능이 좋지 않으므로 ArrayList보다는 LinkedList를 사용하는 것이 좋다.

ArrayList 값 변경하기

ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3));//초기값으로 1,2,3이 들어있는 ArrayList선언
int num = list.set(1,10); //index 1에 있는 값이 10으로 변경되고 기존값은 반환되어 num에 저장

set(index, obj) 메소드는 특정 인덱스의 값을 obj로 변경하고 기본 값을 반환한다

위의 코드로 결과를 보면

System.out.prinln(num); // index 1에 기존 값이었던 2가 출력
System.out.println(list); // 변경된 결과인 [1,10,3] 출력

ArrayList 크기 구하기

ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3));

list.size(); //list 크기 반환

System.out.prinln(list.size()); //list 크기 출력

ArrayList 값 출력

ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3));

int num1 = list.get(0) //index 0에 들어있는 값을 반환에 변수에 저장

System.out.prinln(num1) //출력 : 1

for(int i = 0; i < list.size(); i++){
		System.out.prinln(list.get(i));
}
//반복문을 통한 전체내용 출력

ArrayList 값 삭제

ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3));

list.remove(1) //index 1에 있는 값 제거

list.clear(); //모든 값 제거

좋은 웹페이지 즐겨찾기