From f438eb348af50ef063743992aa0b588eb04e4b59 Mon Sep 17 00:00:00 2001 From: Trustin Lee Date: Sun, 22 Dec 2013 19:21:07 +0900 Subject: [PATCH] Use LinkedHashSet for HttpHeaders.names() and add Javadoc about the performance of names() and entries() --- .../handler/codec/http/DefaultHttpHeaders.java | 6 ++---- .../jboss/netty/handler/codec/http/HttpHeaders.java | 13 ++++++------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/jboss/netty/handler/codec/http/DefaultHttpHeaders.java b/src/main/java/org/jboss/netty/handler/codec/http/DefaultHttpHeaders.java index 759378e5f1..297381f89b 100644 --- a/src/main/java/org/jboss/netty/handler/codec/http/DefaultHttpHeaders.java +++ b/src/main/java/org/jboss/netty/handler/codec/http/DefaultHttpHeaders.java @@ -22,13 +22,13 @@ import java.util.Calendar; import java.util.Date; import java.util.HashSet; import java.util.Iterator; +import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.NoSuchElementException; import java.util.Set; -import java.util.TreeSet; public class DefaultHttpHeaders extends HttpHeaders { @@ -376,9 +376,7 @@ public class DefaultHttpHeaders extends HttpHeaders { @Override public Set names() { - - Set names = new TreeSet(String.CASE_INSENSITIVE_ORDER); - + Set names = new LinkedHashSet(); HeaderEntry e = head.after; while (e != head) { names.add(e.key); diff --git a/src/main/java/org/jboss/netty/handler/codec/http/HttpHeaders.java b/src/main/java/org/jboss/netty/handler/codec/http/HttpHeaders.java index 0ab187cf1a..1ce684c048 100644 --- a/src/main/java/org/jboss/netty/handler/codec/http/HttpHeaders.java +++ b/src/main/java/org/jboss/netty/handler/codec/http/HttpHeaders.java @@ -1177,10 +1177,9 @@ public abstract class HttpHeaders implements Iterable> public abstract List getAll(String name); /** - * Returns the all headers that this message contains. - * - * @return A {@link List} of the header name-value entries, which will be - * empty if no pairs are found + * Returns a new {@link List} that contains all headers in this object. Note that modifying the + * returned {@link List} will not affect the state of this object. If you intend to enumerate over the header + * entries only, use {@link #iterator()} instead, which has much less overhead. */ public abstract List> entries(); @@ -1198,9 +1197,9 @@ public abstract class HttpHeaders implements Iterable> public abstract boolean isEmpty(); /** - * Gets a {@link Set} of all header names that this message contains - * - * @return A {@link Set} of all header names + * Returns a new {@link Set} that contains the names of all headers in this object. Note that modifying the + * returned {@link Set} will not affect the state of this object. If you intend to enumerate over the header + * entries only, use {@link #iterator()} instead, which has much less overhead. */ public abstract Set names();