Advertencia de FindBugs: uso ineficiente de keySet iterator en lugar de entrySet iterator

Por favor, consulte el siguiente método:

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 da este mensaje de guerra:

"Uso ineficiente de keySet iterator en lugar de entrySet iterator Este método accede al valor de una entrada del Mapa, utilizando una clave que se recuperó de un iterador de KeySet. Es más eficiente usar un iterador en el entrySet del mapa, para evitar la búsqueda Map.get (clave) ".

Respuestas a la pregunta(5)

Su respuesta a la pregunta