-
기술 면접 스터디 - 4일차(List, Set, Map, HashMap, Parameter와Argument)[기술 면접 준비] 2023. 3. 30. 13:35
Q. List, Set, Map, HashMap의 차이에 대해서 설명해주세요.
A. List, Set, Map, HashMap 모두 자바의 컬렉션 프레임 워크 입니다.
우선, 컬렉션 프레임 워크를 사용하는 이유는 다음과 같습니다.
기존에는 많은 데이터를 처리하기 위해 배열을 사용하였으나, 크기가 고정되어 있고 삽입과 삭제 시간이 오래 걸린다는 불편한 점들이 많았습니다. 따라서 이를 보완하기 위해 자바에서 동적 배열 개념인 컬렉션 프레임워크를 제공하였는데요. 이를 통해 자료의 삽입, 삭제, 검색 등이 용이해지고 제네릭으로 선언되어 있기 때문에 어떤 자료형이라도 담을 수 있고 크기가 자유롭게 늘어난다는 강점을 갖고 있습니다.
List 는 선형 자료 구조로써 순서를 보장하고, 데이터의 중복을 허용합니다.
Set 은 비선형 자료구조로써 순서를 보장하지 않고, 데이터의 중복도 허용하지 않는 집합의 개념입니다.
Map 은 비선형 자료구조로써 Key 와 value 의 한 쌍으로 이루어지는 데이터의 집합이며, 순서를 보장하지 않고 key에 대한 중복을 허용하지 않습니다.
HashMap 은 Map 인터페이스를 구현한 구현체이며, key 또는 value 값으로써 null을 허용합니다. map 과 hashmap 의 차이는, Map은 red-black tree 알고리즘을 이용하여 키-값 관계를 유지하는 반면, hashmap은 해싱을 이용하여 키-값 관계를 유지한다는 차이점이 있습니다.
* Red-Black Tree : 자가 균형 이진 탐색 트리 입니다. 레드블랙트리의 가장 큰 특징으로는 삽입, 삭제 동안 트리의 모양이 균형 잡히도록 각 노드들은 red 나 black 색상을 가진다는 것입니다. 검색, 삽입, 삭제 시 모두 O(logn)의 시간복잡도가 보장되는 자료구조 입니다.
* Hashing: 키(Key) 값을 해시 함수(Hash Function)라는 수식에 대입시켜 나온 결과를 주소로 사용하여 바로 값(Value)에 접근하게 할 수 하는 방법입니다.
Q. Parameter와 Argument의 차이에 대해 설명해주세요.
A. Parameter는 함수를 정의할 때 사용되는 변수를 의미하고, Argument 는 실제로 함수가 호출될 때 넘기는 변수값을 의미합니다. 파라미터는 매개변수 이며, argument는 인자 또는 인수라고 합니다.
파라미터는 함수를 정의할 때 사용되는 변수! 알규먼트는 함수를 호출할 때 사용하는 전달값!
'[기술 면접 준비]' 카테고리의 다른 글
기술 면접 스터디 - 6일차(트랜잭션, 웹서버, WAS) (0) 2023.04.13 기술 면접 스터디 - 5일차(프로세스, 쓰레드, TCP, UDP) (0) 2023.03.31 기술 면접 스터디 - 3일차(MSA, 제네릭) (0) 2023.03.29 기술 면접 스터디 - 2일차(DI, Index) (0) 2023.03.28 기술 면접 스터디 - 1일차(OOP, Rest API) (0) 2023.03.27