次の方法を参照してください。
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はこの警告メッセージを出します:
" entrySetイテレータの代わりにkeySetイテレータを非効率的に使用する このメソッドは、keySetイテレータから取得したキーを使用してMapエントリの値にアクセスします。Mapを回避するには、マップのentrySetでイテレータを使用する方が効率的です。 .get(key)ルックアップ。」