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). "

questionAnswers(5)

yourAnswerToTheQuestion