Ostrzeżenie FindBugs: nieefektywne użycie iteratora keySet zamiast iteratora entrySet
Proszę odnieść się do następującej metody:
public Set<LIMSGridCell> getCellsInColumn(String columnIndex){
Map<String,LIMSGridCell> cellsMap = getCellsMap();
Set<LIMSGridCell> cells = new HashSet<LIMSGridCell>();
Set<String> keySet = cellsMap.keySet();
for(String key: keySet){
if(key.startsWith(columnIndex)){
cells.add(cellsMap.get(key));
}
}
return cells;
}
FindBugs podają tę ostrzegawczą wiadomość:
"Nieefektywne użycie iteratora keySet zamiast iteratora entrySet Ta metoda uzyskuje dostęp do wartości wpisu mapy za pomocą klucza pobranego z iteratora keySet. Bardziej efektywne jest użycie iteratora w zestawie pozycji mapy, aby uniknąć wyszukiwania Map.get (klucza). "