Iterator 메서드를 사용하여 Java의 컬렉션에서 요소를 제거하는 방법은 무엇입니까?

Iterator Meseodeuleul Sayonghayeo Javaui Keollegsyeon Eseo Yosoleul Jegeohaneun Bangbeob Eun Mueos Ibnikka



반복자 ” 메서드는 컬렉션을 반복하면서 컬렉션에서 특정 데이터 요소를 제거하거나 삭제하는 안전하고 쉬운 방법을 제공합니다. '의 발생을 방지합니다. ConcurrentModificationException 향상된 for 루프가 컬렉션을 수정하려고 할 때 발생합니다. 현재 위치의 트랙을 저장하고 프로그래머에게 필요에 따라 앞으로 이동하고 기본 요소를 제거할 수 있는 기회를 제공합니다.

이 블로그는 반복자 메서드를 활용하여 컬렉션에서 요소를 제거하는 프로세스를 보여줍니다.







Iterator 메서드를 사용하여 Java의 컬렉션에서 요소를 제거하는 방법은 무엇입니까?

반복자 방법은 단방향이며 '를 포함하여 다양한 컬렉션 유형과 함께 사용할 수 있습니다. 배열리스트”, “링크드리스트 ” 등을 구현하는 모든 컬렉션에서 요소를 제거하는 균일한 방법을 제공합니다. 반복 가능 ' 상호 작용.



반복자 메서드를 더 잘 이해하기 위해 몇 가지 예를 살펴보겠습니다.



예제 1: Iterator 메서드를 사용하여 컬렉션에서 특정 요소 제거

반복자 방법은 ' 만약에 ” 문 또는 루프를 사용하여 지정된 요소를 선택합니다. 그리고 ' 제거하다 ()” 메서드는 아래와 같이 삭제 작업을 수행하는 데 사용됩니다.





수입 java.util.* ;
수업 IterExam
{
공공의 공전 무효의 기본 ( [ ] 인수 )
{
배열목록 < 정수 > 데모ArrList = 새로운 배열목록 < 정수 > ( ) ;
~을 위한 ( 정수 = 0 ; <= 이십 ; = + 2 )
{
demoArrList. 추가하다 ( ) ;
}
반복자 < 정수 > itr = demoArrList. 반복자 ( ) ;
체계 . 밖으로 . 프린트 ( '제공된 ArrayList:' ) ;

~을 위한 ( 정수 = 0 ; < demoArrList. 크기 ( ) ; ++ )
{
체계 . 밖으로 . 인쇄 ( demoArrList. 얻다 ( ) + ' ' ) ;
}
~하는 동안 ( itr. hasNext ( ) )
{
만약에 ( itr. 다음 ( ) % == 0 )
itr. 제거하다 ( ) ;
}
체계 . 밖으로 . 프린트 ( ' \N 홀수 ArrayList 요소를 제거한 후' ) ;
~을 위한 ( 정수 = 0 ; < demoArrList. 크기 ( ) ; ++ )
{
체계 . 밖으로 . 인쇄 ( demoArrList. 얻다 ( ) + ' ' ) ;
}
}
}

위 코드에 대한 설명:

  • 먼저 ArrayList가 생성된 다음 ' 2 ”는 “의 범위까지 삽입된다. 이십 ”의 도움으로 ~을 위한 ' 루프.
  • 다음으로 ' 반복자 ” 메서드 개체를 사용하여 콘솔에 ArrayList의 요소를 표시합니다.
  • 그런 다음 ' hasNext ()” 메서드를 모든 상주하는 ArrayList 요소를 통과하는 반복자 개체와 함께 사용합니다.
  • 그 후, “ 만약에 '문은 '로 완전히 나눌 수 있는 요소를 확인하는 데 사용됩니다. ' 그 안에.
  • 그런 다음 ' 제거하다 ()” 메소드는 “ 만약에 ' 성명.
  • 결국 업데이트된 ArrayList는 ' ~을 위한 ' 루프.

컴파일 후:

출력에는 3으로 나눌 수 있고 반복자 메서드를 사용하여 ArrayList에서 제거되는 특정 요소가 표시됩니다.

예 2: 컬렉션에서 모든 요소 제거

컬렉션의 모든 상주 요소를 제거하려면 iterator 메서드를 ' 제거하다 ()” 방법은 다음과 같습니다.

수입 java.util.* ;
수업
{
공공의 공전 무효의 기본 ( 인수 [ ] )
{
벡터 < 정수 > 테스트 벡터 = 새로운 벡터 < 정수 > ( ) ;
testVector.testVector입니다. 추가하다 ( 18 ) ;
testVector.testVector입니다. 추가하다 ( 이십 일 ) ;
testVector.testVector입니다. 추가하다 ( 25 ) ;
testVector.testVector입니다. 추가하다 ( 27 ) ;
testVector.testVector입니다. 추가하다 ( 30 ) ;

반복자 < 정수 > 횡단 = testVector.testVector입니다. 반복자 ( ) ;
체계 . 밖으로 . 인쇄 ( '기존 요소:' ) ;
~하는 동안 ( 횡단. hasNext ( ) )
체계 . 밖으로 . 인쇄 ( 횡단. 다음 ( ) + ' ' ) ;
체계 . 밖으로 . 인쇄 ( ' \N testVector에는 ' + testVector.testVector입니다. 크기 ( ) + ' 요소 ' ) ;
횡단 = testVector.testVector입니다. 반복자 ( ) ;
~하는 동안 ( 횡단. hasNext ( ) )
{
체계 . 밖으로 . 인쇄 ( ' \N 제거 + 횡단. 다음 ( ) ) ;
횡단. 제거하다 ( ) ;
}
체계 . 밖으로 . 프린트 ( ' \N 이제 testVector에는 ' + testVector.testVector입니다. 크기 ( ) + ' 요소' ) ;
}
}

코드 설명:

  • 먼저 '를 선언하고 초기화합니다. 벡터 ”를 사용하여 더미 정수 유형 값으로 추가하다 ()' 방법.
  • 다음으로 '를 사용하는 반복자 메서드를 만듭니다. hasNext ()' 그리고 ' 다음 ()” 방법. 상주하는 데이터 요소와 해당 크기를 표시합니다.
  • 그런 다음 ' hasNext ()' 속성을 ' 내부의 반복자 객체를 따라 ~하는 동안 ' 루프.
  • 그 후 ' 다음 ()” 메서드를 사용하여 다음 요소를 선택한 다음 제거하다 () 메서드를 호출하여 각 수신 요소를 삭제합니다.
  • 이러한 방식으로 Vector의 모든 요소가 제거되고 Vector의 크기가 콘솔에 표시됩니다.

코드 설명:

위의 코드는 컬렉션의 모든 요소가 제거되었음을 확인합니다.

예제 3: ListIterator를 사용하여 요소 제거

ListIterator는 반복자 메서드와 유사하게 작동합니다. ListIterator는 정방향 및 역방향 양쪽에서 순회를 수행합니다. Java에서 ListIterator를 사용하여 컬렉션에서 특정 요소를 제거하려면 아래 코드를 방문하십시오.

수입 java.util.ArrayList ;
수입 java.util.ListIterator ;
공공의 수업 ListIteratorDemo {

//main() 메소드 초기화
공공의 공전 무효의 기본 ( [ ] 인수 )
{ //ArrayList 선언 및 초기화
배열목록 < > 어른 = 새로운 배열목록 < > ( ) ;
어른 추가하다 ( '후디' ) ;
어른 추가하다 ( '폴' ) ;
어른 추가하다 ( '헨리' ) ;
어른 추가하다 ( '땀' ) ;
어른 추가하다 ( '평상복' ) ;
어른 추가하다 ( '사치' ) ;
어른 추가하다 ( '드라이핏' ) ;


ListIterator < > 리터 = 어른 listIterator ( ) ;
체계 . 밖으로 . 프린트 ( '삭제 전 목록' ) ;
~을 위한 ( 정수 = 0 ; < 어른 크기 ( ) ; ++ )
체계 . 밖으로 . 인쇄 ( 어른 얻다 ( ) + ' ' ) ;
~하는 동안 ( 리터. hasNext ( ) ) {
만약에 ( 리터. 다음 ( ) . 같음 ( '땀' ) ) {
리터. 제거하다 ( ) ;
}
}
체계 . 밖으로 . 프린트 ( ' \N 제거 후 나열' ) ;
~을 위한 ( 정수 = 0 ; < 어른 크기 ( ) ; ++ )
체계 . 밖으로 . 인쇄 ( 어른 얻다 ( ) + ' ' ) ;
}
}

위 코드에 대한 설명:

  • 먼저 더미 문자열 유형 값으로 ArrayList를 선언 및 초기화하고 '를 사용하여 콘솔에 모든 요소를 ​​표시합니다. ~을 위한 ' 루프.
  • 다음으로 '를 호출하는 개체를 만듭니다. hasNext ()' 메서드 안의 ' ~하는 동안 ' 루프. 상주하는 모든 요소를 ​​통과합니다.
  • 그런 다음 ' 만약에 ” 문은 해당 요소가 “ 제거하다 ()” 메서드가 호출됩니다. '에서 특정 요소를 삭제합니다. 예술 ”라는 이름의 ArrayList입니다.
  • 마지막으로 수정된 ArrayList를 콘솔에 표시합니다.

컴파일 후:

스냅샷은 지정된 데이터 요소가 ListIterator를 사용하여 컬렉션에서 제거되었음을 확인합니다.

결론

컬렉션에서 요소를 제거하려면 ' 제거하다 ()” 메서드를 사용합니다. 반복자는 대상 데이터를 찾기 위해 ArrayList를 통과합니다. 일단 발견되면 ' 제거하다 ()” 메서드는 해당 특정 데이터 요소를 제거하는 데 사용됩니다. 다양한 컬렉션에 걸쳐 표준화된 기술을 제공하고 “ ConcurrentModificationException '. 이와 함께 “ ListIterator '도 도움이 될 수 있습니다.