강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

mibhf6919님의 프로필 이미지
mibhf6919

작성한 질문수

나도코딩의 자바 기본편 - 풀코스 (20시간)

Iterator (전반전)

Iterator (알 수 없음) 데이터 삭제 후 초기화 관련 문의

작성

·

16

0

안녕하세요,

하기 코드 중에서 it는 list.iterator의 return값을 담은, 또 다른 Iterator로 판단됩니다.

저는 그 다른 it를 while 돌려서 (알 수 없음)을 모두 삭제했습니다.(첫 번째 while문)

그러고나서 다시 it = list.iterator 코드를 입력하면, 사실상 앞에서 (알 수 없음)을 삭제했던 작업은 다 날아가고 새로운 Iterator return값으로 덮어 씌워지고, 이후 두 번째 while문에서는 (알 수 없음)도 모두 출력되어야 하는 상황으로 이해되는데

그렇지 않고 강사님께서 의도하신대로 정상 출력되더라고요. 혹시 사유가 어떻게 되나요?

자바에서 x = A 라는 수식은 x에 A값을 집어넣는 게 아닌가요? x는 A의 메모리 주소를 가리키고 x를 수정하면 A 내부 값이 함께 수정되는건가요??

// (알 수 없음) 데이터 삭제
        it = list.iterator();
        while (it.hasNext()) {
            String s = it.next();
            if (s.contains("(알 수 없음)")) {
                it.remove();
            }
        }

        // 삭제 정리된 데이터 재순회
        it = list.iterator();   // 데이터 삭제 간 맨 마지막으로 가 있는 위치 초기화
        while (it.hasNext()) {
            System.out.println(it.next());
        }

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
mibhf6919님의 프로필 이미지
mibhf6919

작성한 질문수

질문하기