티스토리 뷰

반응형

배열의 크기가 동적(정해지지 않은 : 가변적인) 인 배열을 사용할때 사용되는 클라스

 

1. Vector

- 필요에 따라 크기를 동적으로 조절할 수 있는 동적배열을 구현

- 배열과 마찬가지로 정수 인덱스를 이용하여 배열에 액세스 가능

- 동기화(Thread Safe) 되어있으며 한번에 하나의 스레드만 벡터의 메소드를 호출 할 수 있습니다.

 

2. ArrayList

- 자바 표준 배열보다 약간 느릴수 있지만 배열에서 많은 조작이 필요로할때 유용하게 사용

- 기본 데이터 타입(int, char 등)에 대해 만들수 없기때문에 Integer, Object 등의 객체에 대해 참조해서 사용

 

3. 차이

- 동기화

  -- Vector는 동기화가 가능한 반면 ArrayList는 동기화가 안됨

 

- 스레드

  -- 스레드 안전이란 멀티 스레드 프로그래밍에서 여러 스레드가 동시에 접근이 이루어져도 프로그램 실행에 

문제가 없음을 뜻함 즉, Vector는 동기화 되어있기 때문에 한번에 하나의 스레드만 접근할 수 있기때문에 스레드 

안전

  -- ArrayList는 동기화되지 않았기 때문에 명시적으로 동기화 할 필요가 있습니다.

 

- 성능(속도)

  -- 동기화를 하지않는 ArrayList의 속도가 더 빠르다.

 

- 크기

  -- 배열의 크기가 동적으로 변하는 과정에서 Vector클라스는 인덱스의 크기가 현재 배열과 같은 크기의 인덱스가 증가(100%) 반면  ArrayList는 현재배열 크기의 반(50%)가 증가한다.

 

경제적인 면에서는 ArrayList가 좋다.

 

 

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함