@Override public WaitingMessageSummaryStatistic getWaitingReplyMessageSummaryStatistic() { List<WaitingReplyMessageStatistic> ret = getWaitingReplyMessageStatistic(); String mostWaitingMsgName = null; String longestWaitingMsgName = null; long most = 0; long longest = 0; Map<String, Integer> countMap = new HashMap<String, Integer>(); for (WaitingReplyMessageStatistic s : ret) { if (s.getWaitingTime() > longest) { longest = s.getWaitingTime(); longestWaitingMsgName = s.getMessageName(); } Integer count = countMap.get(s.getMessageName()); count = count == null ? 1 : count ++; countMap.put(s.getMessageName(), count); if (count > most) { most = count; mostWaitingMsgName = s.getMessageName(); } } return new WaitingMessageSummaryStatistic( ret.size(), countMap, mostWaitingMsgName, most, longestWaitingMsgName, longest ); }