Why this matters
Iterating over keySet() and then calling get(key) leads to unnecessary lookups. Using entrySet() retrieves both key and value in a single operation, improving efficiency.
entrySet() When Iterating Over MapsEnsure that entrySet() is used instead of iterating over keySet() and calling get(key), to optimize performance.
Iterating over keySet() and then calling get(key) leads to unnecessary lookups. Using entrySet() retrieves both key and value in a single operation, improving efficiency.
Side-by-side examples engineers can pattern-match during review.
public void doSomethingWithMap(Map<String,Object> map) {
for (String key : map.keySet()) { // Noncompliant; for each key the value is retrieved
Object value = map.get(key);
// ...
}
}public void doSomethingWithMap(Map<String,Object> map) {
for (Map.Entry<String,Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
// ...
}
}From the same buckets as this rule.
All static JS/CSS/font/image files MUST use content-hashed filenames (e.g., app.9c1a7b.js) and be served with "Cache-Control: public, max-age=31536000, immutable". HTML and other non-fingerprinted documents MUST be served with "Cache-Control: no-cache" (or equivalent) to enable conditional revalidation.