我在一個方法中運行下面的代碼,但在返回鍵和值<「dataInicio」>,<「orange」>時位於地圖的位置6,而不是位置一像它應該。有什麼可以做到這一點?爲什麼我的HashMap將一個元素放在位置6而不是下一個空位置?
我創建的這張地圖將參數發送給Jasper報告,並將dataInicio置於位置6,然後將dataFim放置在位置1和位置3的listaParametros中。這很瘋狂。
下面的代碼:
final Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("SUBREPORT_DIR", "apple");
parameters.put("dataInicio", "orange");
parameters.put("dataFim", "melon");
parameters.put("listaParametros", "banana");
return parameters;
而這裏的表現形式日食打印屏幕查看:
因爲這就是HashMap的工作原理 - 密鑰是根據哈希碼插入到桶中的,所以插入順序不會被保留。你可能想嘗試一下'String,Object'對的列表。 – Marvin
爲什麼要在位置1? –
其他人告訴你關於'HashMap',但還有其他'Map'實現(例如'TreeMap'和'ConcurrentSkipListMap'),它們保持按照它們的自然排序排序的鍵。 –