본문 바로가기

개발자 면접준비

[Daily] 3월 30일 데일리 과제

Q. List, Set, Map, HashMap의 차이에 대해서 설명해주세요.

A. 네개의 타입 모두 컬렉션 프레임워크에 속하는 인터페이스와 클래스입니다. 

첫번째 List부터 말씀드리자면 List는 순서가 있는 데이터의 집합으로 데이터의 중복을 허용합니다. List는 인덱스를 사용하여 요소에 접근할 수 있으며 List의 종류에는 ArrayList, LinkedList, Vector등이 List 인터페이스를 구현합니다. 

 

두번째로 Set에 대해서 말씀드리자면, Set은 순서가 없는 데이터의 집합으로서 데이터의 중복을 허용하지 않습니다. Set은 값의 존재 유무를 판별하기 위해 equals()와 hashCode() 메서드를 사용합니다. Set의 종류로는 HashSet과 TreeSet등이 Set의 인터페이스를 구현합니다. 

 

세번째로 Map에 대해서 설명드리겠습니다. Map은 key와 value로 이루어진 데이터의 집합으로서 Map은 순서가 없고 키의 중복은 허용하지 않습니다. 그러나 value에 대한 중복이 가능하며 key를 사용하여 값을 저장하고 조회할 수 있습니다. Map의 대표적인 종류로는 HashMap, TreeMap, Hashtable등이 Map의 인터페이스를 구현하게 됩니다. 

 

마지막으로 HashMap은 key와 value로 이루어진 데이터의 집합으로서 앞서 말씀드린 Map의 구현체로서 동일하게 키의 중복을 허용하지 않습니다. 키를 사용하여 값을 저장하고 조회할 수 있으며 순서가 없습니다. 

HashMap은 Hashtable을 사용하여 데이터를 저장하므로 데이터의 조회 속도가 빠릅니다. 


Q. Parameter와 Argument의 차이에 대해 설명해주세요.

A. Parameter(매개변수)는 함수 또는 메서드를 정의할 때, 함수의 입력값을 받아들이는 변수입니다. 함수를 정의할 때, 매개변수는 함수 이름 뒤에 괄호를 묶어서 정의되며 함수를 호출 할 때 매개변수에 값을 전달하면 함수 내부에서 해당 값에 접근할 수 있습니다. 

Argument(인자)는 함수를 호출 할 때 함수에 전달하는 입력 값입니다. 함수를 호출할 때 함수 이름 뒤에 괄호를 열고 인자를 전달하게 됩니다. 함수를 호출 할 때 전달된 인자는 함수 내부에서 매개변수로 사용됩니다. 따라서 함수를 호출 할때에는 전달된 인자의 갯수와 매개변수의 갯수가 일치해야 합니다. 

 

요약 -> 매개변수(Parameter)는 함수를 정의할 때 사용하는 변수이고, 인자(Argument)는 함수를 호출 할 때 전달하는 입력 값입니다. 함수를 호출할 때 전달된 인자(Argument)는 함수 내부에서 해당 매개변수(Parameter)에 전달되게 됩니다.