장바구니 minus 질문있습니다!
public void minus(Product product, Integer minusQuantity) {
Integer quantity1 = cartMap.get(product);
int newQuantity = quantity1 - minusQuantity;
if (newQuantity <= 0) {
cartMap.remove(product);
} else {
cartMap.put(product, newQuantity);
}
}
정말 기본적인 질문인거같은데 이해가 안돼서 질문드립니다
저 else문을 안쓰고 그냥 put하면 수량은 0이 되는데 키가 지워지지 않더라구요 근데 else문을 사용하니까 키가 사라지는데 무슨 차이일까요 ㅠㅠ remove는 이미 if문에서 실행이 돼야되는거 아닌가요
답변 1
2
안녕하세요. 동형님, 공식 서포터즈 OMG입니다.
else문을 안쓰셨다는 코드가 아래와 같은 코드가 맞을까요?
if (newQuantity <= 0) {
cartMap.remove(product);
}
cartMap.put(product, newQuantity);
그렇다면 키가 지워지지 않는 것은 당연합니다.
if 조건에 포함되건 포함되지 않는건 put으로 계속 map에 데이터를 최신화 하기 때문입니다.
질문에 올리신 코드와 같은 경우에는 0보다 같거나 작을 경우에는 무조건 remove를 하지만
0보다 큰 경우에만 put을 하게 됩니다.(키가 지워지지 않겠죠?)
감사합니다.
제네릭 타입 매개변수 제한과 관련한 문의입니다.
0
80
3
강의가 좀 버겁다 느껴질 때 학습방법 문의
1
135
4
제네릭 반환값 및 파라미터 선언 방식의 변화 <T> T
0
63
1
new T()가 안 되는 니유
0
102
1
안녕하세요, 문제와 실행 결과가 다른 부분이 있어 제보드립니다.
0
98
2
자바 로드맵 선택 질문
0
111
2
실전 자바 중급 - 2편 후 추천 강의
0
177
2
실프로젝트에서 Java25버전 사용
0
121
1
Arrays.sort
0
68
1
블로그 작성 시, 저작권 문제에 대하여
0
166
1
중급2편 56강의 bucket.add(value); 메서드가 이해가 안됩니다.
0
94
3
pop()과 poll()의 차이
0
94
1
특정 index의 노드 조회하기 질문
0
66
2
List.of() 비어있는 불변 리스트 생성
0
81
2
문제2: 개 타입 반환
0
56
2
[리뷰] 중급2편까지 겨우 완강 했습니다.
0
114
2
문제와 풀이1 Ex2와 Ex3
0
65
2
노드 삭제시 노드 null값으로 초기화
0
78
2
강의영상에 대한 질문
0
57
1
타입 매개변수 제한
0
59
1
compareTo
0
68
1
직접 구현하는 연결리스트 3 - 추가 부분 질문있습니다
0
99
3
섹션 8-58 equals and hashcode 에서 코드가 다르게 생성됨
0
70
2
퀴즈 오류 관련 문의
0
109
1





