인터페이스

 설명

List 

 순서가 있음, 중복 허용

 Set

 순서가 없음, 중복 허용하지 않음

 Map<K,V>

 순서가 없음, Key의 중복을 허용하지 않음.



이 프레임워크중에서 List의 구현체들을 알아보자.



1) ArrayList


- 내부적으로 배열을 사용하여 요소들을 관리합니다.

- 배열을 사용함으로 검색 속도가 좋다.

- 값이 추가 혹은 삭제될 때 내부적으로 배열을 새로 만들어놓고 옮긴다.

- 추가 및 삭제에 대하여 시간이 오래걸림. (ex. 총 5개의 요소 중 3번째 요소를 삭제하면 뒤에 부분을 다시 앞으로 옮기고 옮기고..)


2) LinkedList


- 요소들끼리 링크를 통해 연결됨으로 삽입 삭제가 용이.(= 이중 연결리스트)

- 검색에는 불리하다. ( 앞, 뒤로 계속 링크를 타고 가야함으로..)


3) Vector


- ArrayList와 자주 비교되는데, 차이점은 동기화 여부에 있다.

- 싱글 스레드 환경에서는 ArrayList가 성능이 좋지만, 다중 스레드 환경에서는 ArrayList는 동기화를 보장하지 못하기 때문에, Vector를 사용하면 될 것 같지만... Vector 보다 성능이 우월하면서 동기화를 보장해주는 다른 방법들이 있기에 잘 사용하지 않는다

(궁금하면 한번 봐보시길)





ADD : capacity에 대해서 안썻구나.


capacity ->배열을 늘릴 때 얼만큼씩 늘릴 건지


ex) List가 공간이 부족하여 확보할 때 capacity만큼 확보한다.

'Programming > JAVA' 카테고리의 다른 글

자바 8 - Map  (0) 2018.10.19
캡슐화, 추상화, 인터페이스  (0) 2018.10.10
자바8 - List  (0) 2018.10.02
자바8 - 제네릭  (2) 2018.09.03
ArtifactTransferException: Failure to transfer ...  (0) 2018.08.27
자바 8 - 람다식  (0) 2018.08.19

+ Recent posts