這是我的java數據,如果數據量巨大,處理和獲取響應需要很多時間如何優化此代碼以獲取快速動作兩個for循環花費大量時間執行任何解決方案以減少時間JAVA
List<EventLog> eventLogs = new ArrayList<EventLog>();
List<EventLog> eventLogData = get(currentUser, data);
Map<String, Integer> map = new HashMap<String, Integer>();
for (EventLog rep : eventLogData) {
if (map.containsKey(rep.getEventType())) {
map.put(rep.getEventType(), map.get(rep.getEventType()) + 1);
} else {
map.put(rep.getEventType(), 1);
}
}
for (Map.Entry<String, Integer> entry : map.entrySet()) {
EventLog list = new EventLog();
list.setEventType(entry.getKey());
list.setCount(entry.getValue());
eventLogs.add(list);
}
return eventLogs;
「巨大」和「長時間」不是很具體。請詳細說明。 – OldProgrammer
兩者都以線性時間運行(只有一個深度),除非您更詳細地指定了期望的結果以及迴路太慢的方式,否則可能無法做任何事情。 – luk2302
你是否分析了你的應用程序?你確定這是執行時間很長的代碼塊嗎?你確定這個塊會從優化中受益嗎? – scottb