つい最近、面接を受けたのだがその際に質問された項目の一つ。
「リストとマップとセットの違いについて説明してください」
この質問を聞いた際に、頭の中で、
「listとmapとset!(これ重要)について説明してください」
と変換したため、何を言っているんだろう?と本気で悩んでしまった。
本来の意味では「コレクションとしての」が接頭辞として付くと分かりやすいのかな?
ただ、質問の意図は正直今でも分からず、違いを理解せずに使ってるやつなんているの?と思ってしまう。まぁ、自分の理解が正しいか不安にはなるので、ここで晒してみよう。晒すのが答えなのか、恥なのかは分からないけど。
リスト:要は可変配列、要素は重複を許す。
マップ:キーと値をの対を要素として持つ集合。キーの重複は許されない場合が多い。(許す実装をどっかで見た、気のせいかも)
セット:集合。要素の重複を許さない。
順序が保障されるかどうかは実装によるのでどうでもいい。ArrayListなら入れた順番だし、LinkedListなら要素の値で順序が保障される(本当?あんまり使わないから分からん)といった感じ。
これが答えられない、もしくは大きく理解がずれてるとしたらそれはそれで問題な気がする。
No comments:
Post a Comment