Có cách nào để loại bỏ một mục Groovy trong khi đang lặp lại không? Trong Java này được thực hiện sử dụng Iterator.remove()
:Groovy loại bỏ mục Bộ sưu tập trong khi đang lặp lại
Collection collection = ...
for (Iterator it=collection.iterator(); it.hasNext();) {
Object obj = it.next();
if (should remove) {
it.remove();
}
}
Liệu Groovy cung cấp loại bỏ-khi-lặp lại trong cú pháp ngôn ngữ của nó, hay tôi đã làm sử dụng Iterator.remove()
?
Rất tuyệt vời !!! Tôi không biết về .removeAll {} –
@JarredOlson Nếu bạn chưa quen với Groovy, tôi khuyên bạn nên kiềm chế bản thân không làm các vòng lặp dựa trên vòng lặp thủ công (hoặc 'cho ()' cho vòng lặp). Với các phương thức dựa trên đóng cửa như 'each',' collect', 'findAll', v.v ... Tôi chưa bao giờ có nhu cầu sử dụng các trình lặp lặp rõ ràng trong Groovy, và đó là một sự cứu trợ lớn = D –
epidemian
@epidemian Tôi không phải là mới, chỉ không biết về .removeAll {} và tôi nghĩ nó rất tuyệt :) Tôi sẽ lặp lại các câu lệnh của bạn mặc dù trong đó sử dụng các phương thức trên Bộ sưu tập là những cách rất tốt để làm quen với các bao đóng/Groovy. –