我有一个 HashMap ,其中包含 String 作为 key ,一个 Object 作为 value 为了对我的 HashMap 进行排序,我创建了一个 TreeMap ,遍历 HashMap 并将 HashMap 的每个条目放入一个 TreeMap ,其中 key 是带宽, value 是信号的实例.这是我的代码
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中
任何帮助?