Làm cách nào để sử dụng Phương thức lặp để xóa phần tử khỏi bộ sưu tập trong Java?

Lam Cach Nao De Su Dung Phuong Thuc Lap De Xoa Phan Tu Khoi Bo Suu Tap Trong Java



Các ' trình vòng lặp ” cung cấp một cách an toàn và dễ dàng để loại bỏ hoặc xóa các thành phần dữ liệu cụ thể khỏi một bộ sưu tập trong khi lặp lại nó. Nó ngăn ngừa sự xuất hiện của “ ConcurrentModificationException ” phát sinh khi vòng lặp for nâng cao cố gắng sửa đổi bộ sưu tập. Nó lưu trữ đường đi của vị trí hiện tại và cung cấp cho các lập trình viên cơ hội tiến về phía trước và loại bỏ các yếu tố cơ bản khi cần.

Blog này trình bày quy trình xóa một phần tử khỏi bộ sưu tập bằng cách sử dụng phương thức lặp.







Làm cách nào để sử dụng Phương thức lặp để xóa phần tử khỏi bộ sưu tập trong Java?

Phương thức lặp là đơn hướng và có thể được sử dụng với nhiều loại bộ sưu tập khác nhau, bao gồm “ ArrayList”, “LinkedList ”, v.v. Nó cung cấp một cách thống nhất để loại bỏ các phần tử khỏi bất kỳ bộ sưu tập nào triển khai “ Có thể lặp lại ” giao diện.



Chúng ta hãy xem một số ví dụ để hiểu rõ hơn về phương thức iterator:



Ví dụ 1: Xóa các phần tử cụ thể khỏi bộ sưu tập bằng phương thức Iterator

Phương thức iterator có thể được sử dụng với “ nếu như ” câu lệnh hoặc vòng lặp để chọn các phần tử được chỉ định. Và sau đó ' di dời ()” được sử dụng để thực hiện thao tác xóa như hình bên dưới:





nhập khẩu java.util.* ;
lớp học thi lại
{
công cộng tĩnh khoảng trống chủ yếu ( Sợi dây [ ] tranh luận )
{
Lập danh sách < số nguyên > demoArrList = mới Lập danh sách < số nguyên > ( ) ;
( int Tôi = 0 ; Tôi <= hai mươi ; Tôi = Tôi + 2 )
{
demoArrList. thêm vào ( Tôi ) ;
}
Trình lặp < số nguyên > = demoArrList. trình vòng lặp ( ) ;
Hệ thống . ngoài . bản in ( 'ArrayList được cung cấp:' ) ;

( int Tôi = 0 ; Tôi < demoArrList. kích cỡ ( ) ; Tôi ++ )
{
Hệ thống . ngoài . in ( demoArrList. lấy ( Tôi ) + '' ) ;
}
trong khi ( hasNext ( ) )
{
nếu như ( Kế tiếp ( ) % 3 == 0 )
di dời ( ) ;
}
Hệ thống . ngoài . bản in ( ' \N Sau khi loại bỏ các phần tử ArrayList lẻ' ) ;
( int Tôi = 0 ; Tôi < demoArrList. kích cỡ ( ) ; Tôi ++ )
{
Hệ thống . ngoài . in ( demoArrList. lấy ( Tôi ) + '' ) ;
}
}
}

Mô tả đoạn mã trên:

  • Đầu tiên, ArrayList được tạo và sau đó là bội số của “ 2 ” được chèn cho đến phạm vi của “ hai mươi ” với sự giúp đỡ của “ ' vòng.
  • Tiếp theo, khai báo một “ trình vòng lặp ” đối tượng phương thức để hiển thị các phần tử của ArrayList trên bàn điều khiển.
  • Sau đó, sử dụng “ hasNext ()” với đối tượng iterator để duyệt qua tất cả các phần tử ArrayList đang cư trú.
  • Sau đó, “ nếu như ” câu lệnh được dùng để kiểm tra các phần tử có chia hết cho “ 3 ' bên trong nó.
  • Sau đó, “ di dời ()” được sử dụng để xóa các phần tử được trả về bởi “ nếu như ' tuyên bố.
  • Cuối cùng, ArrayList cập nhật đã được hiển thị bằng cách sử dụng “ ' vòng.

Sau khi tổng hợp:



Đầu ra hiển thị các phần tử cụ thể chia hết cho ba và được xóa khỏi ArrayList bằng phương thức lặp.

Ví dụ 2: Xóa tất cả các phần tử khỏi bộ sưu tập

Để loại bỏ tất cả các phần tử cư trú của bộ sưu tập, phương thức iterator có thể được sử dụng cùng với “ di dời ()” như hình bên dưới:

nhập khẩu java.util.* ;
lớp học trống rỗng
{
công cộng tĩnh khoảng trống chủ yếu ( Sợi dây tranh luận [ ] )
{
véc tơ < số nguyên > kiểm traVector = mới véc tơ < số nguyên > ( ) ;
testVector. thêm vào ( 18 ) ;
testVector. thêm vào ( hai mươi mốt ) ;
testVector. thêm vào ( 25 ) ;
testVector. thêm vào ( 27 ) ;
testVector. thêm vào ( 30 ) ;

Trình lặp < số nguyên > đi qua = testVector. trình vòng lặp ( ) ;
Hệ thống . ngoài . in ( 'Các yếu tố hiện có:' ) ;
trong khi ( đi qua. hasNext ( ) )
Hệ thống . ngoài . in ( đi qua. Kế tiếp ( ) + '' ) ;
Hệ thống . ngoài . in ( ' \N TestVector chứa ' + testVector. kích cỡ ( ) + 'yếu tố' ) ;
đi qua = testVector. trình vòng lặp ( ) ;
trong khi ( đi qua. hasNext ( ) )
{
Hệ thống . ngoài . in ( ' \N loại bỏ ' + đi qua. Kế tiếp ( ) ) ;
đi qua. di dời ( ) ;
}
Hệ thống . ngoài . bản in ( ' \N Bây giờ, testVector chứa ' + testVector. kích cỡ ( ) + 'yếu tố' ) ;
}
}

Mô tả mã:

  • Đầu tiên, khai báo và khởi tạo “ véc tơ ” với các giá trị kiểu số nguyên giả bằng cách sử dụng “ thêm vào ()' phương pháp.
  • Tiếp theo, tạo một phương thức lặp sử dụng “ hasNext ()' Và ' Kế tiếp ()”. Nó hiển thị các phần tử dữ liệu cư trú và kích thước tương ứng của chúng.
  • Sau đó, sử dụng “ hasNext ()” dọc theo đối tượng iterator bên trong “ trong khi ' vòng.
  • Sau đó, sử dụng “ Kế tiếp ()” để chọn phần tử sắp tới, và sau đó, di dời () được gọi để xóa từng phần tử nhận.
  • Bằng cách này, tất cả các phần tử của Vector bị loại bỏ và kích thước của Vector được hiển thị trên bảng điều khiển.

Mô tả mã:

Đoạn mã trên xác nhận rằng tất cả các phần tử từ bộ sưu tập đã bị xóa.

Ví dụ 3: Xóa phần tử bằng ListIterator

ListIterator hoạt động tương tự như phương thức iterator. ListIterator thực hiện di chuyển ngang trên cả hai phía theo hướng tiến và lùi. Để xóa các phần tử cụ thể khỏi bộ sưu tập bằng ListIterator trong Java, hãy truy cập mã bên dưới:

nhập khẩu java.util.ArrayList ;
nhập khẩu java.util.ListIterator ;
công cộng lớp học ListIteratorDemo {

//Khởi tạo phương thức main()
công cộng tĩnh khoảng trống chủ yếu ( Sợi dây [ ] tranh luận )
{ // Khai báo và khởi tạo ArrayList
Lập danh sách < Sợi dây > lớn lên = mới Lập danh sách < Sợi dây > ( ) ;
lớn lên thêm vào ( 'Áo trùm đầu' ) ;
lớn lên thêm vào ( 'Cây sào' ) ;
lớn lên thêm vào ( 'Henley' ) ;
lớn lên thêm vào ( 'Mồ hôi' ) ;
lớn lên thêm vào ( 'Bình thường' ) ;
lớn lên thêm vào ( 'Sang trọng' ) ;
lớn lên thêm vào ( 'khô' ) ;


Danh sáchIterator < Sợi dây > lít = lớn lên listIterator ( ) ;
Hệ thống . ngoài . bản in ( 'Danh sách trước khi xóa' ) ;
( int Tôi = 0 ; Tôi < lớn lên kích cỡ ( ) ; Tôi ++ )
Hệ thống . ngoài . in ( lớn lên lấy ( Tôi ) + '' ) ;
trong khi ( lít. hasNext ( ) ) {
nếu như ( lít. Kế tiếp ( ) . bằng ( 'Mồ hôi' ) ) {
lít. di dời ( ) ;
}
}
Hệ thống . ngoài . bản in ( ' \N Danh sách sau khi loại bỏ' ) ;
( int Tôi = 0 ; Tôi < lớn lên kích cỡ ( ) ; Tôi ++ )
Hệ thống . ngoài . in ( lớn lên lấy ( Tôi ) + '' ) ;
}
}

Mô tả đoạn mã trên:

  • Đầu tiên, khai báo và khởi tạo ArrayList với các giá trị kiểu Chuỗi giả và hiển thị tất cả các phần tử trên bảng điều khiển bằng cách sử dụng “ ' vòng.
  • Tiếp theo, tạo một đối tượng gọi là “ hasNext ()” bên trong “ trong khi ' vòng. Nó đi qua tất cả các yếu tố cư trú.
  • Sau đó, “ nếu như ” câu lệnh được sử dụng để kiểm tra từng phần tử với văn bản cụ thể, khi phần tử đó khớp với “ di dời ()” được gọi. Nó xóa phần tử cụ thể khỏi “ nghệ thuật ” có tên là ArrayList.
  • Cuối cùng, hiển thị ArrayList đã sửa đổi trên bàn điều khiển.

Sau khi tổng hợp:

Ảnh chụp nhanh xác nhận phần tử dữ liệu được chỉ định đã bị xóa khỏi bộ sưu tập bằng ListIterator.

Phần kết luận

Để xóa phần tử khỏi bộ sưu tập, lệnh “ di dời ()” của iterator được sử dụng. Trình lặp đi qua ArrayList để tìm dữ liệu được nhắm mục tiêu. Một khi nó được tìm thấy ' di dời ()” được sử dụng để xóa phần tử dữ liệu cụ thể đó. Nó cung cấp một kỹ thuật tiêu chuẩn hóa trên các bộ sưu tập khác nhau và ngăn ngừa các sự cố cũng như sự xuất hiện của một số trường hợp ngoại lệ như “ ConcurrentModificationException ”. Cùng với đó, “ Danh sáchIterator ” cũng có thể hữu ích.