2013-10-28 15 views
5

Tôi đang cố gắng điền Bản đồ từ Danh sách. Đây là những gì tôi đang làm.Sử dụng phương pháp thu thập đóng cửa để điền một HashMap trong groovy

itemNoList = [1,2,3,4] 
bookMap = [:] 
bookMap = itemNoList.collect{ [ (it) : it+1 ] } 

Khi tôi làm điều này, sách sẽ thay đổi thành loại ArrayList và hiện có Danh sách HashMap.

bookMap hiện là [{1=2}, {2=3}, {3=4}, {4=5}], tức là Danh sách bản đồ.

Làm cách nào để có thể lấy HashMap từ ArrayList bằng phương thức collect? Nó sẽ dễ dàng để giải quyết điều này bằng cách sử dụng một số each thay vì collect, nhưng tôi chỉ tò mò cho dù nó có thể được giải quyết bằng cách sử dụng collect.

Trả lời

11

Bạn đang gặp may! Các phương thức xử lý phương thức collectEntries hoạt động giống như collect nhưng đối với Bản đồ!

groovy:000> itemNoList = [1, 2, 3, 4] 
===> [1, 2, 3, 4] 
groovy:000> itemNoList.collectEntries { [(it): it+1] } 
===> {1=2, 2=3, 3=4, 4=5} 
+0

Tuyệt vời !, đây chính xác là những gì tôi muốn! – Wizard

Các vấn đề liên quan