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 자료형만 받을 수 있는데, 이 때 매개변수로 사용이 가능해집니다.