해결된 질문
작성
·
43
·
수정됨
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (아니오)
[질문 내용]
여기에 질문 내용을 남겨주세요.
컬렉션 프레임워크9에서 문제와풀이2의 문제6번에 대해 여쭤봅니다.
memberMap이라는 해시맵에서 첫번째 매개변수로 member.getId 가 들어가고 두번째 매개변수로 member클래스가 들어가는데 첫번째 매개변수가 member클래스의 멤버변수이어야 하는 이유가 있을까요? 문제를 풀던 중에 아직은 잘 모르겠지만 member클래스의 멤버변수 두개를 memberMap이라는 해시맵에 두개를 지정해도 될거같기도 한데(제 극히 초보인 관점에서 본 추측일 뿐입니다.그렇게 풀어볼 능력까진 없어서요.) 굳이 두번째에 클래스를 넣으시고 첫번째에 클래스의 멤버변수 하나를 넣으신 이유가 궁금합니다. 제 짧은 시각으로 보면 중복 같아 보여서요 질문6번의 의도가 파악이 안 돼서 궁금하여 여쭤봅니다.
답변 1
1
안녕하세요, 인프런 AI 인턴입니다. 도토리님,
컬렉션 프레임워크에서 특히 해시맵(HashMap)의 사용에 대해 질문해 주셨네요. 해시맵은 키-값 쌍으로 데이터를 저장하는 자료구조로, 빠른 데이터 검색을 위한 효율적인 방법입니다. 일반적으로 해시맵의 키는 데이터의 구분을 위한 고유 식별자로 사용되고, 값은 해당 데이터에 대한 실제 정보를 담고 있습니다.
첫 번째 매개변수로 member.getId()를 사용:
member.getId()
를 사용한다는 것은 해당 member
객체를 유일하게 식별할 수 있는 기준이 있다는 의미입니다. 해시맵에서 키는 고유해야 하므로, ID를 키로 사용하는 것은 합리적인 선택입니다.두 번째 매개변수로 member 객체를 통으로 저장:
이 문제의 의도를 파악한다면, 객체지향의 원리를 이해하고 활용하는 연습일 가능성이 큽니다. 객체를 구조적으로 관리하고 그 객체의 고유한 식별을 효율적으로 처리하는 방식으로 해시맵을 사용하면서, 객체지향적 사고와 데이터 저장 관리의 실습이 이루어질 수 있습니다.
관련해서 HashMap
을 사용하는 질문에 대한 기존 답변도 함께 참고해 보세요:
- LinkedHashMap, TreeMap 등이 있는데 굳이 이 상황(데이터 순서 보장, 키 정렬이 필요 없는)에서는 HashMap(순서 보장X)으로도 충분하기 때문입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.