가끔 소나 누님이 내뱉는 크리티컬 문제이다.
예전( 1.5 이전?)에 Map을 KeySet에 의해 루프를 돌던 형태인데, 이경우 key에 의한 룩업 과정을 한번 더 거치게 되므로 성능상 불이익이 있다는 얘기란다.
사실 얼마나? 로 물어보면 딱히...
여튼 소스는 이렇게 수정했다.
이전 코드
Set<Long> optionKeySet = optionsMap.keySet();
for (Long optionKey : optionKeySet) {
options.add(optionsMap.get(optionKey));
}
return options;
이후코드
for (Entry<Long, Option> entry : optionsMap.entrySet()) {
options.add(entry.getValue());
}
return options;
근데, 담겨지는 리스트(options) 를 보니 루프 이전에 딱히 뭔가 하는게 없다..
return ImmutableList.copyOf(optionsMap.values());
수정.
테스트 돌려보고 이상없어서 push