我有一個HashMap,其中包含String作爲鍵,並將Object作爲值爲了對我的HashMap進行排序,我創建了一個TreeMap,迭代HashMap並將HashMap的每個條目放入一個TreeMap其中的關鍵是帶寬和值signal.Here的實例是我的代碼將HashMap轉換爲Sorted TreeMap
public void createSortedSet(HashMap<String, Signal> map, long totalSize) {
TreeMap<Float, Signal> sortedMap = new TreeMap<Float, Signal>();
JOptionPane.showMessageDialog(null, map.size());
try {
final Iterator<String> iterator = map.keySet().iterator();
while (iterator.hasNext()) {
String messageName = iterator.next();
Signal signal = map.get(messageName);
signal.setBandwidth((signal.getSize()/(float) totalSize) * 100);
sortedMap.put(signal.getBandwidth(), signal);
}
JOptionPane.showMessageDialog(null, sortedMap.size());
} catch (Exception e) {
e.printStackTrace();
}
}
這裏的問題是地圖的大小是8318,而while循環後,當我檢查TreeMap中它給455的尺寸?這是否意味着並非所有的信號實例都存儲在TreeMap中
任何幫助?
運行您的調試器以查看多個信號對象是否共享相同的大小。 – Tap
你的意思是相同的帶寬? – Wearybands
沒錯,但帶寬歸結爲大小,因爲'totalSize'不會改變。 – Tap