이번 시간에는 배열과 ArrayList의 차이점에 대해 알아보려고 하는데요.

어떻게 다른지 한번 비교해볼까요?

배열과 ArrayList에 문자를 저장하는 코드

import java.util.ArrayList;
import java.util.List;

public class Main {
	public static void main(String[] args) {
		String[] array = new String[10];
		List<String> list = new ArrayList<>();
		
		System.out.println("저장 전 length : "+array.length);
		System.out.println("저장 전 size : "+list.size());
		
		array[0] = "홍길동";
		array[1] = "이순신";
		array[2] = "강감찬";
		
		list.add("홍길동");
		list.add("이순신");
		list.add("강감찬");
		
		System.out.println("저장 후 length : "+array.length);
		System.out.println("저장 후 size : "+list.size());	
	}
}

 배열과 ArrayList를 생성하고 값을 저장하기 전과 후의 길이를 비교해보려고 합니다.


오늘의 핵심 키워드

 

  • < 저장 전 length > 배열의 length를 10으로 선언했기 때문에 10 출력
  • < 저장 전 size > ArrayList에 값이 저장되지 않았기 때문에 size 0 출력
  • < 저장 후 length > 값이 3개만 저장되어도 length는 10으로 고정되기 때문에 10 출력
  • < 저장 후 size > 값이 3개가 저장되었기 때문에 size 3 출력

 저장된 값을 확인하기 위해 for문을 활용해 출력하는 코드를 추가했습니다.

< array >

배열의 length를 10으로 선언했기 때문에 10개의 값이 메모리의 할당이 되었고 3개만 입력되었기 때문에 나머지 값은 null이 출력되는 것을 확인할 수 있습니다.

< list >

ArrayList는 값이 입력되는 대로 저장되기 때문에 입력된 3개의 값만 출력되는 것을 확인할 수 있습니다. 그리고 배열과는 다르게 향상된 for문을 사용하여 객체를 출력한 것을 볼 수 있습니다.


최종 완성본

import java.util.ArrayList;
import java.util.List;

public class Main {
	public static void main(String[] args) {
		String[] array = new String[10];
		List<String> list = new ArrayList<>();
		
		System.out.println("저장 전 length : "+array.length);
		System.out.println("저장 전 size : "+list.size());
		
		array[0] = "홍길동";
		array[1] = "이순신";
		array[2] = "강감찬";
		
		list.add("홍길동");
		list.add("이순신");
		list.add("강감찬");
		
		System.out.println("저장 후 length : "+array.length);
		System.out.println("저장 후 size : "+list.size());
		
		System.out.print("array = ");
		for(int i=0; i<array.length; i++) {
			System.out.print(array[i] + " ");
		}
		
		System.out.println();
		
		System.out.print("list = ");
		for(String s : list) {
			System.out.print(s + " ");
		}	
	}
}

꼭 봐야되는 마지막 꿀팁!

  • 값의 개수가 고정적이고 단순할 때는 배열(Array) 사용하기!
  • 값의 개수가 유동적이고 계속 추가될 때는 ArrayList 사용하기!

▲영상으로 한번 더 복습하세요 :)