어떻게 이름표로 찾는 상자, 키와 값
배열에서는 자리 번호로 값을 꺼냈다(8강). 그런데 번호가 아니라 이름으로 찾고 싶을 때가 있다. 친구 전화번호를 찾을 때 '47번째 사람'이 아니라 '민수'로 찾는 것처럼, 이름표로 바로 꺼내는 방법을 알아봐요.
번호 대신 이름표
8강의 배열은 줄 세운 상자였고, 1번, 2번, 3번... 자리 번호로 값을 꺼냈다.
그런데 사전에서 단어를 찾을 때 '325번째 단어'를 떠올리지는 않는다. 그냥 '사과'를 펼치면 뜻이 나온다.
키와 값은 이렇게 이름표로 찾아요.
이름을 고르면 자리 번호를 몰라도 그 값이 바로 나온다.
번호를 셀 필요가 없다.
이름만 알면 곧장 그 값에 닿는다.
그렇다면 이 이름표와 내용물은 정확히 어떻게 짝지어질까요?
짝짓기: 키와 값
칸 하나는 언제나 둘이 한 짝이다. 이름표(키)와 그 안의 내용물(값)이다.
'사과'(키) → 'apple'(값), '민수'(키) → '010-1234'(값) 같은 식이다.
키를 부르면 짝지어진 값이 따라 나와요.
키를 값에 이으면 둘이 묶여 '키 → 값' 한 짝이 된다.
키는 어디서 찾을지를 정하는 이름이고, 값은 실제로 담긴 내용이다.
이런 짝을 잔뜩 모아 둔 것이 사전이다.
그런데 짝이 많아지면 원하는 것을 어떻게 빨리 찾을까요?
줄 서서 찾지 않는다
값이 천 개 있어도 키와 값은 처음부터 하나씩 훑지 않는다.
이름표를 보고 곧장 그 칸으로 간다.
배열에서 자리를 모르면 1번부터 뒤져야 하지만, 키가 있으면 단번에 도착한다. 이것이 빠른 비결이에요.
왼쪽은 하나씩 뒤지고, 오른쪽은 이름표로 단번에 도착한다. 찾기를 누르면 두 방식의 차이가 드러난다.
이름만 알면 멀리 돌아갈 일이 없다.
그래서 키와 값은 많은 것 가운데 하나를 빨리 꺼내는 일에 아주 강하다.
마지막으로, 이름표에는 꼭 지켜야 할 규칙이 하나 있어요.
이름표는 겹치지 않는다
규칙은 하나다. 같은 이름표는 딱 한 번만 쓸 수 있다.
새 이름표는 얼마든지 더 붙여도 되지만, 이미 있는 이름표에 새 값을 넣으면 예전 값은 지워지고 새 값으로 바뀌어요.
새 이름표를 넣으면 칸이 늘고, 같은 이름표를 다시 넣으면 옛 값이 새 값으로 바뀐다.
이름표가 겹치지 않으니 '민수'를 부르면 헷갈릴 일이 없다.
언제나 정확히 한 값이 나온다.
이 단순한 짝 하나가 사실 어디에나 숨어 있어요.
어디에나 있는 짝, 그리고 그 너머
사전(단어→뜻), 설정(항목→값), 연락처(이름→번호), 게임 가방(아이템→개수)이 모두 키와 값이다.
자료를 정리하는 가장 흔한 방법 가운데 하나다.
다음 레슨에서는 이런 이름표들을 한 덩어리로 묶어 하나의 물건처럼 다루는 법으로 넘어가요.
연락처, 설정, 가방 탭을 차례로 누르면 셋 다 같은 '키 → 값'이라는 게 보인다.
줄 세운 배열(8강)에 이어 이름표로 찾는 키와 값까지 손에 넣었다.
이제 번호로도 이름으로도 자료를 다룰 수 있다.
다음은 이름표 여러 개를 한 상자에 담아 하나의 것으로 묶는 객체예요.