{"thread":{"id":"18401","subject":"[PATCH JGIT] Inefficient use of keySet iterator instead of entrySet iterator","startedAt":"2009-03-19T09:17:56Z","lastAt":"2009-03-19T09:17:56Z","messageCount":1,"participants":["Yann Simon"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"108497","messageId":"49C20DC4.1090600@gmail.com","threadId":"18401","inReplyTo":null,"subject":"[PATCH JGIT] Inefficient use of keySet iterator instead of entrySet iterator","fromName":"Yann Simon","fromEmail":"yann.simon.fr@gmail.com","sentAt":"2009-03-19T09:17:56Z","receivedAt":"2009-03-19T09:17:56Z","isPatch":true,"sender":{"key":"yann.simon.fr@gmail.com","avatar":"https://gravatar.com/avatar/2d926895d27ac988c5c8e591887e5a6a4c7036390403c74fce92519119b887a0?d=mp&s=160"},"body":">From FindBugs:\nThis method accesses the value of a Map entry, using a key that\nwas retrieved from a keySet iterator. It is more efficient to use\nan iterator on the entrySet of the map, to avoid the Map.get(key)\nlookup.\n\nSigned-off-by: Yann Simon <yann.simon.fr@gmail.com>\n---\n .../src/org/spearce/jgit/lib/ObjectIdMap.java      |    5 +++--\n .../src/org/spearce/jgit/transport/AmazonS3.java   |    5 +++--\n 2 files changed, 6 insertions(+), 4 deletions(-)\n\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/ObjectIdMap.java b/org.spearce.jgit/src/org/spearce/jgit/lib/ObjectIdMap.java\nindex d3c7f1d..10feaf9 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/lib/ObjectIdMap.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/ObjectIdMap.java\n@@ -183,8 +183,9 @@ public V put(ObjectId key, V value) {\n \t}\n \n \tpublic void putAll(Map<? extends ObjectId, ? extends V> arg0) {\n-\t\tfor (ObjectId k : arg0.keySet()) {\n-\t\t\tV v=arg0.get(k);\n+\t\tfor (Map.Entry<? extends ObjectId, ? extends V> entry : arg0.entrySet()) {\n+\t\t\tObjectId k = entry.getKey();\n+\t\t\tV v=entry.getValue();\n \t\t\tput(k,v);\n \t\t}\n \t}\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/AmazonS3.java b/org.spearce.jgit/src/org/spearce/jgit/transport/AmazonS3.java\nindex 59337f8..3d8bdca 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/transport/AmazonS3.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/transport/AmazonS3.java\n@@ -572,9 +572,10 @@ private HttpURLConnection open(final String method, final String bucket,\n \tprivate void authorize(final HttpURLConnection c) throws IOException {\n \t\tfinal Map<String, List<String>> reqHdr = c.getRequestProperties();\n \t\tfinal SortedMap<String, String> sigHdr = new TreeMap<String, String>();\n-\t\tfor (final String hdr : reqHdr.keySet()) {\n+\t\tfor (final Map.Entry<String, List<String>> entry : reqHdr.entrySet()) {\n+\t\t\tfinal String hdr = entry.getKey();\n \t\t\tif (isSignedHeader(hdr))\n-\t\t\t\tsigHdr.put(hdr.toLowerCase(), toCleanString(reqHdr.get(hdr)));\n+\t\t\t\tsigHdr.put(hdr.toLowerCase(), toCleanString(entry.getValue()));\n \t\t}\n \n \t\tfinal StringBuilder s = new StringBuilder();\n-- \n1.6.1.2\n"}]}