-
[Java] List/Map/Set 차이Java 2021. 10. 18. 13:17반응형
List
순서가 있고 중복을 허용, 크기가 가변적
-LinkedList : ArrayList보다 검색이 느리다. 양방향 포인터 구조로 데이터 삽입, 삭제가 빠르다.
-ArrayList: 단반향 포인터 구조로 데이터 순차적 접근에 강점을 가진다. 배열을 기반으로 데이터를
저장한다. 데이터 삽입,삭제가 느리다. 데이터 검색이 빠르다
Map
KEY ,VALUE 한쌍으로 이루어지는 데이터의 집합
중복이 없으며 순서를 보장하지 X
뛰어난 검색속도를 가진다.
-HashMap :key 에 대한 중복이 없으며 순서를 보장하지 x, key value 값으로 NULL 허용,
-TreeMap: key 값을 기준으로 오름차순 정렬되고 빠른 검색이 가능하다. 저장시 정렬을 하기때문에 시간이 오래걸린다.
Set
데이터의 집합이며 순서가 없고 중복된 데이터를 허용하지 않는다.
중복되지 않은 데이터를 구할 때 용이하다.
빠른 검색 속도를 가진다.
-HashSet: 인스턴스 해시값을 기준으로 저장하기 때문에 순서를 보장하지 x, NULL 허용
List (ArrayList기준)
객체의 수에 따라 자동크기 조절
아이템을 벡터의 어느 곳에나 추가 가능
메소드 종류
add(삽입 값), 맨 뒤에 요소 삽입
add(위치, 삽입 값), 특정 위치에 요소 삽입
get(위치), 지정된 위치의 요소 반환
set(위치, 삽입 값), 특정 위치의 값을 삽입 값으로 교체
remove(위치), 지정된 위치의 요소 제거
remove(삽입 값), 지정된 요소의 값 제거(중복 값 있는 경우 맨 앞의 하나만 제거)
clear(), 모든 요소 제거
indexOf(삽입 값), 지정된 요소의 위치 값 반환(중복 값 있는 경우 맨 앞의 하나만 반환)
isEmpty(), 비어있는지 확인
toArray(), 모든 요소를 배열로 반환
Map(HashMap기준)
HashTable과 달리 null값을 허용
삽입 순서를 유지하지 않음
*LinkedHashMap, 만약 Map에 추가되는 값의 순서가 중요할 경우에 HashMap대신에 사용
HashMap과 동일하지만 이중연결리스트를 사용
메소드 종류
put(키 값, 삽입 값), 임의의 위치에 값 추가
get(키 값), 주어진 키와 일치하는 값을 반환
remove(키 값), 주어진 키 값과 일치하는 키와 삽입 값 제거
clear(), 모든 키와 삽입 값 제거
containsKey(키 값), 주어진 키가 배열안에 존재하는지 확인
containsValue(삽입 값), 삽입 값이 배열 안에 존재하는지 확인
entrySet(), 키와 값의 쌍으로 구성된 모든 Map.Entry 객체를 set에 담아서 반환요약
List는 기본적으로 데이터들이 순서대로 저장되며 중복을 허용한다.
Map 순서가 보장되지 X key 값의 중복은 허용, value값은 중복 허용
set 순서 보장되지 X 데이터들 중복을 허용하지 않는다.반응형'Java' 카테고리의 다른 글
[Java] 추상클래스 abstract (0) 2022.05.17 [Java] 열거형(Enum) (0) 2022.05.17 [Java] Integer.valueOf() 와 Integer.parseInt()의 차이 (0) 2021.09.23 [Java] 배열 - Array (0) 2021.05.03 [Java] 조건,반복문 사용 - for, while, if (0) 2021.05.03