본문 바로가기

Developer/Java-oop

#022. Collection ArrayList<E> 알아보기...

#022. Collection ArrayList<E> 알아보기...

 

1. ArrayList 의 특징은 이전 시간에서 알아 봤듯이, 중복을 허용하며, 순서가 보장이 된다. Collection 중에서 가장 많이 사용을 한다. 특히, 가변 배열로 많이 사용을 한다. 역시 이번 시간에도 데이터가 어떻게 들어가는지 디버그 화면을 통해 알아보겠다.

 

2. 테스트를 위해 util 패키지에 ListDemo class 를 만들어 아래의 코드를 작성해보자.

1) 먼저 ListArray 의 사용법을 익혀보자.

코드

package util;

import java.util.ArrayList;

public class ListDemo {

    public static void main(String[] args) {

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

        names.add("김동혁");    //추가

        names.add("이연희");

        names.add("김준호");

        System.out.println("김동혁 포함여부..: " + names.contains("김동혁") );

        System.out.println("names 가 비었는지 확인: " + names.isEmpty() );

        names.add("김동혁");    //데이터 중복 추가

        names.remove("김준호"); //삭제

        //데이터 추출

        for(String name : names){

            System.out.println(name);

        }

        //데이터 추출

        for ( int i=0; i<names.size(); i++ ){

            System.out.println("[ " + i + " ]번째: " + names.get(i));

        }

        System.out.println("원소의 갯수: " + names.size());

        names.clear(); //모두삭제

    }

}

결과

김동혁 포함여부..: true

names 가 비었는지 확인: false

김동혁

이연희

김동혁

[ 0 ]번째: 김동혁

[ 1 ]번째: 이연희

[ 2 ]번째: 김동혁

원소의 갯수: 3

설명

HashSet 과 거의 동일하므로, 다른점 만 적겠다.

문장2: ArrayList 을 사용하기 위해서는 java.util.ArrayList 를 Import 해야 한다.

문장11: "김동혁" item 이 기존에 있지만 한번 더 들어갔을 때.. , 결과와 같이 두번 들어갈 수가 있다.

문장19: names.get(i) 는 i번째 item을 추출하는 것이며, 순서가 보장되기 때문에 몇 번째로 들어간 item을 추출할 수 있는 것이다.

 

여기서 중요한 것은 item 의 중복을 허용 한다는 것이다.

 

3. ArrayList 의 특징 중 순서가 보장되는 것을 디버그 화면을 통해 알아보자.

1) 우리는 이전시간에 디버그로 실행하는 방법을 배웠으므로, 준비작업은 패스하고, 중요한 부분만 알아보겠다.

 

2) 문장6에 브레이크를 걸고, 디버그 모드로 실행을 해보자.

설명

F5 번 또는 우측상단에 저 모양을 눌러서 문장6의 코드를 실행한 화면이다.

우측에 variables 에 [0] 칸. 즉, 1번째 배열에 들어가는 것을 확인 할 수 있다.

아직까지는 순서를 보장하고 있다.

 

3) 디버그상에서 값 확인하기 (위 상태에서 한번 더 F5 눌러서 진행하기)

설명

본문 3-2) 에서 F5 를 눌러서 한번 더 확인한 모습이다. (문장7 을 실행한 뒤 모습)

우측에 [1] 칸. 즉, 2번째 배열에 들어가는 것을 확인할 수 있다.

몇 번이고 테스트를 해봐도 같은 모습을 볼 수 있다. ArrayList 는 순서를 보장함이 틀림이 없다.

 

다음시간에는 Collection HashMap<K,V> 에 대해서 알아보자...

 

잡담: 오늘도 화이팅, 모두 열심히 하세요 ^^"