인프런 커뮤니티 질문&답변
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());
}답변
답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!





