📝 오늘의 내용정리

키오스크 만들기 2차

//Map에 담겨있는 value의 최대값 구하기
int maxCount = orderList.values().stream().max(Integer::compareTo).orElse(1);

🔚 오늘의 마무리

키오스크 프로젝트를 수정하여 제출을 완료했다. 썩 마음에 들지는 않지만 계속 내가 보고 손에 쥐고 있는다고 답이 나오는것도 아니다. 피드백을 받아서 고치는게 더 좋은 방향이라는 생각이 든다.

주문 리스트에 동일한 상품이 담겨있다면 화면에 개수도 같이 출력해줘야 하는 선택 요구사항이 있었다. 나는 아래와 같이 구현을 진행했다.

  1. 주문 리스트에 동일한 상품이 담기지 않았다면 화면에 개수는 출력되지 않는다.
  2. 주문 리스트에 동일한 상품이 담겼다면 화면에 개수가 출력된다.

주문리스트를 Map으로 구현하여 상품을 키로, 갯수를 값으로 담았다. Map에 담긴 value가 모두 1이라면 동일한 상품이 없다는 뜻이고, 1 이상이라면 동일한 상품이 담겼다는 뜻이다.

위 조건을 구현하기 위해서 Map에 담긴 최대값을 구해와야 했다. 평소에 나라면 for문으로 Map을 순회하여 Math 클래스를 통해 최대값을 구했겠지만, 강의를 통해 스트림을 배웠기 때문에 한번 써보고 싶었다😁 for문을 썼으면 장황했을 코드가 한 줄로 딱 정리되니까 깔끔하고 보기 좋았다. 위 코드에 대한 내용정리는 람다, 스트림, 옵셔널을 더 깊게 공부하고 정리해봐야겠다.