Iterator / 얕은 복사와 깊은 복사 / Spliterator

팝콘·2023년 12월 12일

Java

목록 보기
15/17

Iterator

  • 컬렉션의 요소를 읽어올 수 있는 메서드로 Collection 인터페이스에 명시되어 있다.
  1. boolean hasNext( )
    • 읽어 올 요소가 남아있는지 확인한다.
  2. Object next( )
    • 다음 요소를 읽어 온다. next( )를 호출하기 전에 hasNext( )를 호출해서 읽어 올 요소가 있는지 확인하는 것이 안전하다.
  3. void remove( )
    • next( )로 읽어 온 요소를 삭제한다. next( )를 호출한 다음에 remove( )를 호출해야한다.
  • Map 객체의 경우 우선적으로 entrySet( )이나 keySet( )을 먼저 호출한 후 Iterator 메서드를 호출할 수 있다.

얕은 복사와 깊은 복사

얕은 복사

  • 복사 대상의 값만 복사한다. 복사대상의 값이 기본형이라면 문제될 건 없지만 복사 대상에 객체가 포함되어 있거나 참조 변수의 값을 복사할 경우 복사 대상과 같은 객체를 가리키고 있기 때문에 완전한 복사라고 할 수 없다. 이때 복사대상이 포함하고 있는 객체의 값이 바뀌면 같이 값이 바뀐다.

깊은 복사

  • 얕은 복사와는 다르게 포함하고 있는 객체까지 새롭게 복사한다. 따라서 복사대상의 값이 바뀌어도 같이 바뀌지 않는다.
profile
터짐

0개의 댓글