これはjavaでの私のデータです。処理が速く、応答が得られない場合、このコードをどのように高速化するために最適ですか?2つの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
はどちらも線形時間で実行されます(1レベルの深さだけです)、目的の結果がどのようなもので、ループが遅すぎるかを詳細に指定しない限り、おそらく何もできません。 – luk2302
アプリケーションをプロファイルしましたか?実行時間が非常に多いコードブロックであることは確かですか?このブロックが最適化の恩恵を受けることは確実ですか? – scottb