목차
1. List, Set, Map, Hash Map 의 차이점
먼저 차이점을 잡기에 앞서 List와 Set, Map은 Collection을 다루는 인터페이스입니다. Java에서는 List와 Set의 공통된 부분을 다시 뽑아서 새로운 인터페이스,인 Collection을 추가로 정의했습니다. 그래서 이 세가지의 인터페이스를 관계로 나타내면 다음과 같습니다.
List와 Set의 차이점
List와 Set은 데이터를 저장할 수 있는 Collection입니다. List는 데이터의 순서를 보장해서 인덱스 값으로 원하는 위치에 있는 데이터를 찾을 수 있지만, Set은 순서를 보장하지 않습니다. 그래서 인덱스를 이용해서 특정 데이터를 가지고 올 수 없습니다. 탐색의 시간 복잡도는 List는 O(N)이며, Set은 O(1)입니다. 데이터가 많지 않다면 간단한 구조를 가진 List를, 중복을 허용하지 않는 Collection이 필요하면 Set을 사용하도록..
List는 데이터의 중복을 허용하지만 Set은 데이터의 중복을 허용하지 않습니다.
List와 Set의 대표적인 예시
List : LinkedList, Stack, Vector, ArrayList
Set : HashSet, SortedSet - TreeSet
Map은 Key(키)와 value(값)의 쌍(pair)로 이루어진 데이터의 집합입니다, 순서는 유지되지 않지만, 키는 중복을 허용하지 않고, 값은 중복을 허용합니다. Map의 대표적인 예시로 HashMap이 있습니다.
Map의 대표적인 예시
Map : Hashtabel, HashMap, SortedMap - TreeMap
이 3개만 놓고 정리를 해보면 다음과 같습니다.
데이터의 중복을 허용한다 : List와 Map의 값( 키는 중복 x )
순서를 유지하지 않는다 : Set과 Map (그러나 LinkedHashSet과 LinkedHashMap은 순서를 유지합니다.) (또 TreeSet과 TreeMap은 입력 순서는 유지하지 않지만, 데이터와 Key 데이터에 따라 정렬되어 저장됩니다.)
Map과 HashMap의 차이점은 알고리즘에 있습니다. HashMap은 특정 키에 대한 값을 찾는 과정에서 hashTable을 이용해서 키-값의 관계를 우지하지만, Map은 red-black tree 알고리즘을 이용합니다.
여기서 잠깐? red-black tree 알고리즘이란? (이 알고리즘에 대해선 따로 정리하겠습니다)
자가 균형 이진 탐색 트리이며 대표적으로 연관 배열 등을 구현하는데 사용하는 자료구조입니다. (여기서 중요한 점은 이진 탐색 트리인데, 이진 탐색 트리는 각 노드의 자식 노드가 최대 2개이며, 루트 노드로부터 왼편은 작은 값, 오른편은 큰 값이 위치하게 됩니다. 그래서 탐색이 쉽다 이 자료구조를 통해서 특정 key값에 대해 삽입, 삭제, 탐색이 가능합니다.)
3. Parameter와 Argument의 차이점
파라미터(Parameter)와 전달인자(Argument)를 구분하면 다음과 같습니다.파라미터는 함수와 메서드 입력 변수 명을 말하며, 아규먼트는 함수와 메서드의 입력 값을 말합니다.
예시를 통해 쉽게 이해하도록 하겠습니다.
sum (10, 20)
1번 라인의 sum의 10과 20은 Argument ( 전달 인자 )입니다.
sum(num1, num2){
return num1+num2;
}
6번 라인의 num1, num2는 Parameter ( 파라미터 ) 입니다.
즉 sum이라는 함수가 호출될 때, 넘어가는 값은 Argument, 메소드를 선언할 때 들어오는 값은 Parameter 입니다.
(넘겨진 값 : argument, 넘어온 값 : parameter)
'기술면접 관련 및 참고하기' 카테고리의 다른 글
기술 면접 스터디 5일 -( 프로세스와 스레드, TCP와 UDP) (0) | 2023.03.31 |
---|---|
GC (Garbage Collection)이란 무엇인가? (0) | 2023.03.31 |
기술 면접 스터디 3일차 - ( MSA, 제네릭) (0) | 2023.03.30 |
기술면접 스터디 - 2일차 (DI, Index) (0) | 2023.03.28 |
기술 면접 스터디 1일차 - ( OOP, Rest api) (0) | 2023.03.27 |