FindBugs-Warnung: Ineffiziente Verwendung des keySet-Iterators anstelle des entrySet-Iterators

Bitte beziehen Sie sich auf die folgende Methode:

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 geben diese waring Nachricht:

"Ineffiziente Verwendung des keySet-Iterators anstelle des entrySet-Iterators Diese Methode greift auf den Wert eines Map-Eintrags zu, indem ein Schlüssel verwendet wird, der von einem keySet-Iterator abgerufen wurde. Es ist effizienter, einen Iterator für das entrySet der Karte zu verwenden, um die Map.get-Suche (Schlüssel) zu vermeiden. "

Antworten auf die Frage(5)

Ihre Antwort auf die Frage