一个keySet上的Java迭代
发布时间:2020-12-14 16:35:11 所属栏目:Java 来源:网络整理
导读:我有以下 Java代码: public void myMethod (final Map pFeatureGroupsFromPackage) { final SetString keys = pFeatureGroupsFromPackage.keySet(); for (final String key : keys) { tmpList = (ListFeatureKey) pFeatureGroupsFromPackage.get(key); // d
我有以下
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无效的使用keySet迭代器而不是entrySet迭代器. 我不明白为什么这是低效的.实际上keylist只计算一次. 解决方法
而不是迭代keySet并调用get获取每个键的对应值,迭代entrySet:
final Set<Map.Entry<String,List<FeatureKey>>> entries = pFeatureGroupsFromPackage.entrySet(); for (Map.Entry<String,List<FeatureKey>> entry : entries) { String key = entry.getKey(); List<FeatureKey> tmpList = entry.getValue(); // do whatever } 这样你就不需要在地图上查找每个键;你直接得到钥匙和价值一次. 另外,使用类型参数声明您的Map: public void myMethod (final Map<String,List<FeatureKey>> pFeatureGroupsFromPackage) { // ... } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |