[조건]
<카페 메뉴>
아메리카노 1000원
라떼 2000원
우유 1500원
초코라떼 3500원
<대기 손님 수 5명>
이름 : 대기번호
김자바 : 1번
이자바 : 2번
박자바 : 3번
송자바 : 4번
오자바 : 5번
[차근 차근 생각해보기]
- 메뉴판은 순서가 보장된 LinkedHashMap으로 키와 값을 넣어 준다.
- 반복문을 통해 키와 값을 동시에 출력해주기
- 손님의 정보를 담기 위한 User 클래스를 만들기 (이름과 대기번호의 정보가 들어있다.)
- 순서가 보장된 LinkedList로 값을 넣어주기(User 클래스의 객체로 정보를 넣어준다.)
- 반복을 돌면서 값 출력해주기
[코드]
<손님 클래스>
public class User {
private String name;
private int num;
public User(String name, int num) {
this.name = name;
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
<main클래스>
public static void main(String[] args) {
LinkedHashMap<String, Integer> menu = new LinkedHashMap<>();
menu.put("아메리카노", 1000);
menu.put("라떼", 2000);
menu.put("우유", 1500);
menu.put("초코라떼", 3500);
System.out.println("DDONY 카페 메뉴");
System.out.println("------------------");
for (String key : menu.keySet()) {
System.out.println(key + " " + menu.get(key) + "원");
}
LinkedList<User> user = new LinkedList<>();
user.add(new User("김자바", 1));
user.add(new User("이자바", 2));
user.add(new User("박자바", 3));
user.add(new User("송자바", 4));
user.add(new User("오자바", 5));
System.out.println();
System.out.println("오늘의 총 대기 고객 수 : " + user.size());
System.out.println("카페 영업 시작합니다. ^0^");
System.out.println();
for (User u : user) {
System.out.println("대기번호 " + u.getNum() + "번 " + u.getName() + " 손님 음료 준비 되었습니다.");
System.out.println("픽업 완료 되었습니다. 감사합니다 ^0^");
System.out.println();
}
System.out.println("오늘의 영업이 종료 되었습니다.");
}
<실행 결과>
[반성할 점]
최대한 다양한 컬렉션 프레임워크를 사용하고 싶어 map과 List를 사용해보았다.
메뉴판을 구현하는데에는 큰 어려움이 없었다.
하지만 손님을 구현하는데 이름과 대기번호를 구현하는데 있어 너무 어려워 그냥 map으로 구현해야하나 싶었다..
조언을 구해본 결과 손님 클래스를 만들어 손님 정보를 만들어 주는게 맞는 방법이라고 하여 손님 클래스에 이름과 대기번호의 정보가 담길 수 있도록 만들어주었다. 그리고 add메서드에 User객체를 넣어 값을 넣어주었다.
손님이 음료를 픽업하고 나면 리스트에서 삭제를 해주고 싶었는데 remove()를 하니 아래와 같은 오류가 나서 그냥 remove는 빼고 구현하였다.
다음엔 조금 더 기술을 첨가하여 제대로 된 커피숍 프로그램을 만들어봐야겠다.
직접 문제를 생각하고 구현해본 방식이라 어설픈게 많지만 이런식으로 여러가지 기술을 활용하여 프로그램을 몇개 만들어보아야겠다.
'Java' 카테고리의 다른 글
람다식(Lambda) (0) | 2023.06.13 |
---|---|
익명 클래스 (0) | 2023.06.13 |
[Collection 프레임워크] - Iterator (0) | 2023.06.12 |
[Collection 프레임워크] - HashMap (0) | 2023.06.12 |
[Collection 프레임워크] - HashSet (0) | 2023.06.12 |