次の Java コードがあります。
public void myMethod (final Map pFeatureGroupsFromPackage) {
final Set<String> keys = pFeatureGroupsFromPackage.keySet();
for (final String key : keys) {
tmpList = (List<FeatureKey>) pFeatureGroupsFromPackage.get(key);
// do whatever
}
}
「findBugs」から次のような警告が表示されます。
メソッドmyMethod
は、entrySet イテレーターの代わりに keySet イテレーターを非効率的に使用します。警告はtmpList
割り当て時に行われます。
なぜこれが非効率なのか理解できません。実際、keys
リストは一度だけ計算されます。任意のコメント?ありがとう。