✨
TIL) 키오스크 프로그램 구현하기2
October 20, 2023
📝 오늘의 내용정리
//Map에 담겨있는 value의 최대값 구하기
int maxCount = orderList.values().stream().max(Integer::compareTo).orElse(1);
🔚 오늘의 마무리
키오스크 프로젝트를 수정하여 제출을 완료했다. 썩 마음에 들지는 않지만 계속 내가 보고 손에 쥐고 있는다고 답이 나오는것도 아니다. 피드백을 받아서 고치는게 더 좋은 방향이라는 생각이 든다.
주문 리스트에 동일한 상품이 담겨있다면 화면에 개수도 같이 출력해줘야 하는 선택 요구사항이 있었다. 나는 아래와 같이 구현을 진행했다.
- 주문 리스트에 동일한 상품이 담기지 않았다면 화면에 개수는 출력되지 않는다.
- 주문 리스트에 동일한 상품이 담겼다면 화면에 개수가 출력된다.
주문리스트를 Map으로 구현하여 상품을 키로, 갯수를 값으로 담았다. Map에 담긴 value가 모두 1이라면 동일한 상품이 없다는 뜻이고, 1 이상이라면 동일한 상품이 담겼다는 뜻이다.
위 조건을 구현하기 위해서 Map에 담긴 최대값을 구해와야 했다. 평소에 나라면 for문으로 Map을 순회하여 Math 클래스를 통해 최대값을 구했겠지만, 강의를 통해 스트림을 배웠기 때문에 한번 써보고 싶었다😁 for문을 썼으면 장황했을 코드가 한 줄로 딱 정리되니까 깔끔하고 보기 좋았다. 위 코드에 대한 내용정리는 람다, 스트림, 옵셔널을 더 깊게 공부하고 정리해봐야겠다.