inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

김영한의 실전 자바 - 중급 2편

문제와 풀이2 - Map2

7번 장바구니 문제의 minus() 메서드 로직 관련

100

Sangjun Lee

작성한 질문수 3

0

[질문 내용]
문제 7 - 장바구니 문제에서, minus 메서드를 보면 찾으려는 product가 존재하지 않는 경우에도 cartMap.remove()를 호출하도록 되어 있습니다. 존재하지 않는 것을 지우고자 하는 게 불필요하게 메서드를 호출하는 게 아닌가 싶은데, 예제를 쉽게 만들기 위한 선택인가요, 아니면 실무에서 저렇게 결과를 찾을 수 없어도 지우도록 하는 코드를 작성해도 문제가 없는 건가요?

java 객체지향 코딩-테스트 알고리즘

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. Sangjun Lee님.

장바구니에서 상품을 제거하는 minus() 메서드 로직에 관해 질문해 주셨군요. 특정 키를 맵에서 제거할 때, 해당 키가 존재하지 않아도 remove()를 호출하는 경우가 종종 있습니다. 이는 메서드 호출 자체가 크게 비용이 크지 않다는 점에서 문제가 되지 않습니다. Java의 Map 인터페이스에서의 remove() 메서드는 존재하지 않는 키에 대해 호출되더라도 아무런 작용을 하지 않습니다, 즉 예외가 발생하지 않고, 호출 비용도 크지 않기 때문에 성능에 크게 영향을 미치지 않습니다.

예제를 더욱 간단하게 만들기 위한 방법일 수도 있지만, 실무에서도 이러한 접근 방법을 사용하는 것이 일반적입니다. 특히, 다중 스레드 환경에서 값이 변경될 가능성이 있는 경우에는 불필요한 상태 체크를 줄임으로써 코드가 더 간결해지고, 오류 발생 가능성을 줄여 더 안전해지는 경우가 있습니다.

관련 질문 및 답변을 보시고 추가적인 이해를 돕기를 바랍니다:

  1. 장바구니 minus 질문있습니다!

    • 이 게시물에서 변수 newQuantity를 계산 후 조건문 처리 방식에 대한 설명이 포함되어 있습니다.
  2. 컬렉션프레임워크 문제 풀이2 - 문제7 Cart클래스 add() 및 minus() 코드 방식에 대하여서 질문

    • 강사님이 설명한 코드 스타일 및 안전 지향적인 코드 작성의 이유에 대한 논의가 포함된 게시물입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

제네릭 타입 매개변수 제한과 관련한 문의입니다.

0

77

3

강의가 좀 버겁다 느껴질 때 학습방법 문의

1

127

4

제네릭 반환값 및 파라미터 선언 방식의 변화 <T> T

0

56

1

new T()가 안 되는 니유

0

95

1

안녕하세요, 문제와 실행 결과가 다른 부분이 있어 제보드립니다.

0

97

2

자바 로드맵 선택 질문

0

109

2

실전 자바 중급 - 2편 후 추천 강의

0

173

2

실프로젝트에서 Java25버전 사용

0

115

1

Arrays.sort

0

66

1

블로그 작성 시, 저작권 문제에 대하여

0

164

1

중급2편 56강의 bucket.add(value); 메서드가 이해가 안됩니다.

0

93

3

pop()과 poll()의 차이

0

94

1

특정 index의 노드 조회하기 질문

0

65

2

List.of() 비어있는 불변 리스트 생성

0

80

2

문제2: 개 타입 반환

0

52

2

[리뷰] 중급2편까지 겨우 완강 했습니다.

0

109

2

문제와 풀이1 Ex2와 Ex3

0

64

2

노드 삭제시 노드 null값으로 초기화

0

74

2

강의영상에 대한 질문

0

56

1

타입 매개변수 제한

0

59

1

compareTo

0

67

1

직접 구현하는 연결리스트 3 - 추가 부분 질문있습니다

0

95

3

섹션 8-58 equals and hashcode 에서 코드가 다르게 생성됨

0

68

2

퀴즈 오류 관련 문의

0

107

1