-
[JAVA] Collection에 대해서IT개발이야기 2023. 1. 19. 22:51728x90반응형SMALL
Java Collection Framework은 정말 좋은 인터페이스들이 많다고 생각한다.
그 중 가장 많이 쓰는 인터페이스 List, Set, Map에 대해 간단하게 정리하였다.
1. List
(1) ArrayList : 가장 많이 사용되는 컬렉션 클래스 중 하나이며, 배열을 이용해 배열 요소를 빠르게 접근이 가능하다.
단, 삽입과 삭제가 많다면 비효율적이다.
(2) LinkedList : ArrayList 클래스와 같은 배열을 이용해 저장함으로써 단점을 보완하여 나온 클래스이다. 그리고 내부적으로 양방향 연결 리스트이다.
단, 검색할 때 속도가 느린 단점이 있다.
(3) Vector : 기존코드와 호환성을 위해 남아 있는 것, ArrayList와 동일.
2. Set
(1) HashSet : Set 대표 컬렉션이며, 데이터를 중복 저장할 수 없고 순서를 보장하지 않는다.
(2) TreeSet : HashSet과 동일하나, TreeSet은 오름차순으로 데이터를 정렬한다.
(3) LinkedSet : 중복된 데이터를 저장할 순 없지만, 입력된 순서대로 데이터를 관리한다.
3. Map
(1) HashMap : key, value를 묶어 하나의 entry로 저장하는 특징이며, 해시 알고리즘을 사용하여 많은 양의 데이터를 검색하는데 검색속도가 매우 빠르다. (null값 허용, 동기화 보장 안 함)
(2) TreeMap : HashMap과 같은 역할, 데이터를 이진검색트리의 형태로 저장하며, TreeMap은 정렬이 가능하다.
단, 데이터 저장 시 추가, 삭제는 HashMap 보다 느리며, 정렬된 데이터 조회하는 범위검색인 경우에는 성능이 빠르다.
(3) LinkedHashMap : HashMap과 같은 역할이지만, 특징은 삽입순서를 기억해 준다.
(4) Hashtable : 기존코드와 호환성을 위해 남아 있는 것, HashMap과 동일. ( null값 비허용, 동기화 보장)
728x90반응형LIST'IT개발이야기' 카테고리의 다른 글
[Zebra] 웹에서 지브라 프린트 출력하기 (무선, 유선) (1) 2023.01.28 [JAVA] QUEUE와 STACK (0) 2023.01.20 [SPRINGBOOT] Gradle 설정 (0) 2023.01.13 [SPRINGBOOT] Thymeleaf 에 대해서 (개념, 활용팁) (0) 2023.01.13 [JAVA] javax.mail 를 통한 Email 보내기 (0) 2023.01.12