열심히 끝까지
40강 컬렉션 프레임 웍 연습1 / 고객 관리 프로그램 본문
<복습>
HashMap?
: key와 Value값으로 데이터를 저장하는 형태
특징
- Map 인터페이스의 한 종류
- Map의 모든 속성을 갖고 있으며 저장 방식 동일
- 해싱(Hashing)이라는 검색 알고리즘 사용
- key의 중복은 허용하지 않으나 value의 중복은 허용
<HashMap 구조>
<HashMap 메서드>
40-1 ) HashMap을 사용한 실습
고객관리 프로그램
HashMap을 활용하여,
사용자의 이름과 전화번호를 저장하는 전화번호부를 만들어보자
<HashMap 메서드 정리>
1. 생성 : HashMap 변수명 = new HashMap();
2. 삽입 : 변수명.put(key, value
3. 가져오기 : 변수명.get(key)
4. key 존재 확인 : 변수명.containsKey(key)
<실습> PhoneBookMain
---------------------------------
- 아래의 내용은 메서드를 활용해서 구현할 예정
<전화번호부 기능>
1. 고객 저장
2. 고객 검색
3. 전체 보기
4. 끝내기
----------------------------------
public class PhoneBookMain{
static Scanner sc = new Scanner(System.in);
static HashMap hm = new HashMap();
모든 메서드에서 알아야 할 필드 : 클래스 영역 내에서 생성
- main은 static 영역이므로 main 영역에서도 사용하기 위해 static 변수로 지정
----------------------------------
public static void insert(){
System.out.print("저장할 고객의 이름 : ");
String insertName = sc.next();
if(hm.containKey(insertName)){
System.out.println("이미 존재하는 사람이므로 저장할 수 없습니다.");
return;
}
else {
System.out.print("저장할 고객 번호 : ");
String insertPhone = sc.next();
hm.put(insertName, insertPhone);
System.out.println("저장이 완료되었습니다.");
}
}
insert() : 고객 정보 저장
- 저장할 고객의 이름을 입력받아
hashmap에 존재하지 않을 경우 저장 가능
--------------------------------
public static void search() {
System.out.print("검색할 이름 : ");
String searchName = sc.next();
if(hm.containKey(searchName)){
System.out.println("검색 완료!");
System.out.println("검색된 전화번호 : " + hm.get(searchName));
}
else {
System.out.println("존재하지 않는 이름입니다.");
}
}
search() : 고객 정보 검색
- 검색할 고객의 이름을 입력받아,
hashmap에 존재할 경우 검색 가능
-------------------------------
public static void show() {
Set ketSet = hm.keySet();
Iterator i = keySet.iterator();
System.out.println("-----전체 고객 조회-----");
while(i.hasNext()) {
String curName = (String)i.next();
System.out.println("name : " + curName + ", Phone : " + hm.get(curName));
}
}
show() : 고객 전체 출력
- Iterator을 가져오기 위해 먼저
hashmap의 key들을 set으로 가져온다.
- 가져온 keySet으로 iterator을 선언 후,
다음 요소가 존재할 때까지 반복해서 전체 요소를 가져온다.
'멘토씨리즈 JAVA' 카테고리의 다른 글
42강 스레드1 (0) | 2022.05.10 |
---|---|
41강 컬렉션 프레임 웍 연습2 / 정렬(sort) (0) | 2022.05.10 |
39강 컬렉션 프레임 웍4 / Map (0) | 2022.05.09 |
38강 컬렉션 프레임 웍3 / 큐 / 스택 (0) | 2022.05.07 |
37강 컬렉션 프레임 웍2 / set / list (0) | 2022.05.07 |