(giải pháp cập nhật cho khai thác gỗ của các giá trị bị loại bỏ)
giải pháp này sử dụng google-bộ sưu tập thư viện [LINK]
import static com.google.common.collect.Maps.filterValues;
import static com.google.common.base.Predicates.equalTo;
...
Map<String, String> removedValues = filterValues(hMap, equalTo("Two"));
System.out.println(removedValues); //Log Removed Values
removedValues.clear(); //Removes from original map, since this is a view.
Lưu ý - Giải pháp này lợi dụng thực tế là bản đồ được trả về bởi các cuộc gọi filterValues là một khung nhìn của các phần tử trong HashMap gốc. Điều này cho phép chúng tôi kiểm tra chúng và đăng xuất các khóa đã được gỡ bỏ, và sau đó loại bỏ chúng khỏi bản đồ ban đầu với một cuộc gọi đơn giản để xóa().
Bạn có thể có lý do không muốn sử dụng thư viện bộ sưu tập google trong dự án của mình, nhưng nếu bạn không làm như vậy, tôi khuyên bạn nên kiểm tra.
Nguồn
2010-04-07 18:04:40
Điều này có vẻ tốt kevin, là có bất kỳ cách nào để viết một dòng gỡ lỗi ở trên để cho biết các phím là về để được whacked? –
Bạn có thể muốn xem xét giải pháp của Ron (hoặc của tôi, nếu bạn sẵn sàng thêm bộ sưu tập google) nếu bạn cần đăng nhập các khóa đã xóa. –
Yep, Ron và Jon (ha) câu trả lời là cả hai khả thi nếu bạn muốn biết các phím bạn đang whacking. Tôi có xu hướng thích Ron, chỉ lướt qua bản đồ một lần. –