String을 키로, Object를 value로 사용하는 HashMap이 있습니다. 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();
}
}
문제는 여기에 내 코드 while 루프 후 나는 그것이 (455)를 제공 트리 맵의 크기를 검사 할 때 동안지도의 크기는 8318입니다 ?? 신호의 모든 인스턴스가 TreeMap에 저장되는 것은 아닙니다.
어떤 도움말이 필요합니까?
여러 신호 객체가 같은 크기를 공유하는지 확인하려면 디버거를 실행하십시오. – Tap
같은 대역폭을 의미합니까? – Wearybands
그렇습니다. 그러나 totalSize는 변하지 않기 때문에 대역폭은 크기까지 내려갑니다. – Tap