Tôi có nhu cầu về chức năng giống như băm trong Matlab, trong đó bản đồ băm sao chép vectơ sang vec-tơ khác và số lượng vectơ (trong hàng trăm nghìn) không được biết trước.Phát triển Hashmap của vectơ trong Matlab
Tôi đã cố gắng của Matlab sẵn có Containers.Map, nhưng điều đó không chấp nhận vectơ làm khóa. Sau đó, tôi đã thử java.util.HashMap:
>> map = java.util.HashMap;
>> map.put(1:3,zeros(2,1));
>> map.get(1:3)
ans =
[]
Vì một lý do nào đó dường như không hoạt động, mặc dù HashMap của Java có thể ánh xạ mảng thành mảng.
Tùy chọn khác sẽ là giữ hai ma trận riêng biệt, một cho các khóa và một cho các giá trị và tăng dần chúng. Nhưng tôi không muốn thực sự muốn làm điều đó vì nỗi đau trong Matlab ngày càng tăng dần (thậm chí với số lượng gia tăng khối vv, ví dụ: here).
Câu hỏi: 1. Tại sao HashMap của Java không hoạt động ở đây? 2. Bất kỳ cách tiếp cận nào khác?
Cảm ơn.
xem http://stackoverflow.com/questions/1352553/how-can-i-use-matlab-arrays-as-keys-to-the-hashmap-java-objects – Rasman
Phạm vi giá trị trong vectơ chính? Nếu chúng ints dưới 2^16, bạn chỉ có thể chuyển đổi chúng thành 'char' và sử dụng các chuỗi vui nhộn như các phím. –
Cảm ơn tất cả các câu trả lời của bạn. Các vectơ chính thực sự là ints dưới 2^16 vì vậy tôi so sánh bằng cách sử dụng các thùng chứa.Bản đồ với các phím char và HashMap của java với các phím tương tự như bài Rasman liên kết tới: ok, đó là quá nhiều mã để đăng ở đây vì vậy tôi sẽ đăng nó như một câu trả lời. – Matt