Tags
- javamap반복
- Cognito
- AWS
- map
- rabbitmq설치방법
- yumpackage
- 리눅스rabbitmq설치
- Amazon
- 어노테이션
- dynamodb
- rabbitmq설치명령어
- REST
- javaIteration
- S3
- db
- AWS CloudFormation
- cloudfront
- CloudFormation
- ELB
- spring
- java
- Iteration반복문
- 자료구조
- redis
- list
- 차이점
- 인스턴스
- jpa
- instance
- Heap
https://blog.naver.com/rla8860
- Today
- Total
You are a developer, not a coder.
Array, List, Map 본문
SMALL
1. Array vs List
Array | ArrayList | |
사이즈 | 초기화시 고정 int[] myArray = new int[6]; |
초기화시 사이즈를 표시하지 않음. 유동적 ArrayList<Integer> myArrayList = new ArrayList<>(); |
속도 | 초기화시 메모리에 할당되어 속도가 빠르다. | 추가시 메모리를 재할당하여 속도가 느리다. |
변경 | 사이즈 변경 불가 | 추가 삭제 가능 add(), remove() 로 가능 |
다차원 | 가능 int[][][] muttiArray = new int [3][3][3]; |
불가능 |
2. List
- 내부구현은 배열로 되어 있다.
- 알맞는 데이터 저장공간만 있다면 데이터 저장속도는 빠르다.
- 순차적으로 데이터를 저장하므로, 데이터 특징이 포지션별로 의미가 있을때 사용하는것이 좋다. 이말은 즉, 순차적으로 저장된 데이터를 순차적으로 화면에 배치시킬때 좋다는 것이다.
- 원하는 포지션(인덱스)의 삽입/삭제는 해당 포지션 아래의 데이터들을 모두 Copy해야된다. (기존 배열의 크기를 늘린후 삽입/삭제 데이터를처리하고 Copy된 데이터를 다시 붙인다.)
- 따라서 ArrayList의 Size가 큰 경우는 많은 양의 요소들을 Copy해야 하므로 내부적으로 성능이 떨어질 수 있는것이다.
* 정리
데이터를 순차적으로 받고, 특정 데이터가 아닌 원하는 데이터 범위를 순차적으로 표현할 때 유리한 자료구조라 볼수있다.
3. Map
- List처럼 뭉텅이로 저장하는것이 아니라, Map에 아이템을 저장할때마다 빈공간을 찾아 저장한다.
- List보다는 데이터 저장속도가 느릴수 있다.
- Map의 가장 큰 특징이라면, 쌍을 이루는 Key와 Value값을 이용한다는 것이다.
- 따라서 단순한 포지션 (인텍스) 보다는 저장하고 싶은 데이터가 특별한 Key값을 가질때 Map을 사용하는것이 좋다.
- 동일한 Key값을 사용하면 기존의 Key값을 가지고 있는 value가 사라지고 후에 저장한 value값이 셋팅된다. key만 다르다면 value값이 중복되고 상관없다.
- ArrayList로 데이터를 검색할 경우 0번부터 해당 데이터가 있을때 까지 검색을 해야하지만 HashMap의 경우는 key값을 통해서 빠르게 데이터를 검색한다.
* 정리
Map은 빈번한 검색과 범위데이터가 아닌 특정 데이터를 순간마다 캐치해야할 때 유리한 자료구조이다.
LIST
'Development Basic' 카테고리의 다른 글
Heap 에대해서 (0) | 2020.06.03 |
---|---|
Queue에 대해서 (0) | 2020.06.03 |
Cookie vs Session (0) | 2020.06.03 |
Heap에 대해서 (0) | 2020.05.28 |
Stack에 대해서 (0) | 2020.05.28 |
Comments