programming/Java
Java 자료구조 1 - 톺아보기
legato
2022. 5. 3. 14:54
Java 자료구조 1 - 톺아보기
Java 자료구조 2 - Set
Java 자료구조 3 - Map
Java 자료구조 4 - List
Java 자료구조 5 - Collection
Java 자료구조 6 - Stack
Java 자료구조 7 - Queue, Comparator
Java 자료구조 8 - Deque
점차 더욱 다양한 언어를 함께 사용하게 되어, 그 언어들 간의 기본 자료형, 자료구조에 대한 비교와 정리를 위해 기본적인 개념과 간단한 구조에 대해 학습한 내용을 정리합니다. (java -> kotlin -> ?)
모든 내용은 java17 기준으로 2022년 5월에 작성되었으며 java 17 document 및 intelliJ를 참고한 내용입니다.
Collection
- Set (순서가 없고, 데이터 유일성을 가지는 자료구조)
- HashSet
- TreeSet
- Map (Key-Value의 쌍으로 이루어진 자료구조로 순서가 없고 Key는 유일성을 가지며, Value의 중복은 허용한다.)
- HashMap
- HashTable
- TreeMap
- List (index 라는 식별자로 순서를 가지며, 데이터의 중복을 허용하는 자료구조)
- ArrayList
- LinkedList
- Vector
- Stack
- ETC
- Queue
- Deque
자료구조별 시간복잡도
- https://gist.github.com/FedericoPonzi/8d5094dbae33cbb94536a73f62d1c1a0
- http://bigocheatsheet.com/
data type(Primitive type)
자료형 | 메모리 | 범위 | 기본값 | 의미 | |
정수 | byte | 1 byte | -2⁷ ~ 2⁷-1 | 0 | 8 bit 정수 |
short | 2 bytes | -2¹⁵ ~ 2¹⁵-1 | 0 | 16 bit 정수 | |
int | 4 bytes | -2³¹ ~ 2³¹-1 | 0 | 32 bit 정수 | |
long | 8 bytes | -2⁶³ ~ 2⁶³-1 | 0L | 64 bit 정수 | |
실수 | float | 4 bytes | -3.40E+38 ~ 3.40E+38 | 0.0f | 32 bit 부동소수점 (IEEE754) |
double | 8 bytes | 1.79E+308 ~ 1.79E+308 | 0.0d | 64 bit 부동소수점 (IEEE754) | |
문자 | char | 2 bytes | 0 ~ 2¹⁶-1 | \u0000 | 16 bit 유니코드 문자 |
논리 | boolean | 1 bit | 0 or 1 | 0(false) | 논리형 |
Wrapper class
기본 자료형을 말 그대로 Wrapping한 class입니다. 대표적으로 Byte, Short, Integer, Long, Float, Double, Character, Boolean 이 있습니다. (String의 경우 char의 배열로 구현된 reference type입니다.)
기본자료형을 클래스로 랩핑하여 유용한 메소드를 제공 할 수 있습니다.
이와 더불어 Generic에 사용되는 매개변수 T는 Object 자료형만 받을 수 있는데, 이 때 매개변수로 사용이 가능해집니다.