본문 바로가기
Developer/Java

[Java] ArrayList

by 순수한소년 2015. 1. 15.
728x90
반응형
배열에 이어서 ArrayList에 대해서 알아 보겠습니다.

ArrayList는 배열과 비슷하긴 하지만 차이는 분명하게 존재한다.

일딴 선언부터 알아보도록 하자

ArrayList< 자료형 > (리스트명) = new ArrayList< 자료형 >();

선언 문은 비교적 간단 합니다.

ArrayList<String> list = new ArrayList<String>();

<자료형> 이것은 제네릭스 라고 하는 데 

간단하게 표현하면 사용하고자하는 자료형(객체의 타입)을 미리 명시 하는 것입니다.


그럼 ArrayList 많이 사용하는 가장 큰 특징은 추가,수정,삭제 가 배열에 비하여 편리 하다는 점이다.

앞에서 포스팅 한것처럼 배열은 생성할 때 크기가 정해지면 배열의 크기를 바꿀수 없게 된다.

하지만 ArrayList 를 선언을 한뒤 추가,수정,삭제 시 크기가 유동적으로 바뀐다.(표현이 맞는건지는 모르겠지만)

우리가 생각을 해보자 

int[] arr = {3,5,7,4,2,10,1,17,20,8};

배열의 값을 지우려고 한다 생각해보자..

어떻게 해야 할 것인가 . 중간에 한값만을 지우는 것은 일딴 배열에서는 불가능 하다.

그렇다고 쓰래기 값을 넣자니 .. 공간은 차지하고..

그렇기 때문에  값이 갯수가 유동적 변해야 할 때 ArrayList 사용하는 것이 좋다.



위 그림처럼 ArrayList에 값을 넣어 출력하는 내용이다.

int num = list.size();  <-- size 메소드는 ArrayList 값의 크기를 int 형으로 반환한다.
배열에서 length 메소드랑 같다고 생각하자.

get(int index) 는 list 의 해당 값을 가져오는데, 해당값이 String 이기 때문에 바로 출력이 가능하다.
하지만 차후에 해당값을 클래스객체 형식일 경우는 그자체가 객체 형식을 가지게 된다.

그럼 이제  값을 하나 삭제 해 보자..

삭제 할 때는 remove 메소드를 사용한다.



위 그림처럼 결과가 나오는 것을 확인 해볼 수 있다.

list의 중간에 값을 지우면 리스트의 크기는 그만 큰 줄어들게 된다.

remove() 메소드에 인자의 값을 어떻게 넣어주냐에 따라 

삭제하고자 하는 index값 넣어주면 해당위치가.
삭제하고자하는 Object값 넣어주면 그값과 같은 list를 삭제 합니다
반환되는 값도 다르다. 
그부분도 각자 잘 살펴 보고 넘어 갔으면 좋겠다.

수정 하는 메서드는 set(index,수정할Object)



위 그림 처럼 작성해 주면 된다.

아 그리고 

System.out.println("<<수정>>" + list.set(0, "하얀")); 

처럼 출력문안에 소스를 작성한 이유는 반환되는 값을 확인해 보기 위함이다.

반환값을 출력 안하고자할때는 출력문 밖에 써주면 될 것이다.

반응형