Map <String , List <String >> 表示。键是表示标头名称的不区分大小写的字符串,与每个键关联的值是一个 List <String >,请求或响应中每次出现的标头名称都有一个元素。
例如,如果响应标头实例包含一个键“HeaderName”和两个值“value1 和 value2”,则此对象将输出为两个标题行:
提供了所有常规的HeaderName: value1 HeaderName: value2
Map 方法,但最有可能使用以下附加的便捷方法:
getFirst(String)返回单值标头或多值标头的第一个值。add(String,String)将给定的标头值添加到给定键的列表中。set(String,String)将给定的标头字段设置为覆盖值列表中任何现有值的单个值。
Headers 的实例是可变的或者不变的. A 可变标头允许添加、删除或修改标头名称和值,例如 HttpExchange.getResponseHeaders() 返回的实例。一个不可变的标头不允许对标头名称或值进行任何修改,例如 HttpExchange.getRequestHeaders() 返回的实例。不可变标头实例的增变器方法无条件抛出 UnsupportedOperationException 。
此类中的所有方法都拒绝键和值的 null 值。 null 密钥永远不会出现在 HTTP 请求或响应标头中。
- 自从:
- 1.6
-
内部类总结
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述void将给定的value添加到给定的key的标头列表中。voidclear()从此map中删除所有映射(可选操作)。booleancontainsKey(Object key) 如果此map包含指定键的映射,则返回true。booleancontainsValue(Object value) 如果此map将一个或多个键映射到指定值,则返回true。entrySet()返回此map中包含的映射的Set视图。boolean指示某个其他对象是否“等于”这个对象。返回指定键映射到的值,如果此map不包含键的映射,则返回null。inthashCode()返回对象的哈希码值。booleanisEmpty()如果此map不包含键值映射,则返回true。keySet()返回此map中包含的键的Set视图。static Headers返回一个不可变的Headers,并将给定的名称值对作为其标头集。static Headers从给定的headers返回具有相同标头名称和值的不可变Headers。将指定值与此map中的指定键相关联(可选操作)。void将指定map中的所有值复制到此map(可选操作)。如果存在,则从此map中删除键的映射(可选操作)。void将给定的value设置为给定的key的唯一标头值。intsize()返回此map中键值映射的数量。values()返回此map中包含的值的Collection视图。在类 java.lang.Object 中声明的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait在接口 java.util.Map 中声明的方法
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
-
构造方法详细信息
-
Headers
public Headers()创建Headers的空实例。 -
Headers
从给定的headers创建一个具有相同标头名称和值的可变Headers。- 参数:
headers- 标头名称和值的映射- 抛出:
NullPointerException- 如果headers或其任何名称或值是 null,或者任何值包含 null。- 自从:
- 18
-
-
方法详情
-
size
public int size()从接口Map复制的描述返回此map中键值映射的数量。如果map包含超过Integer.MAX_VALUE个元素,则返回Integer.MAX_VALUE。 -
isEmpty
public boolean isEmpty()从接口Map复制的描述如果此map不包含键值映射,则返回true。 -
containsKey
从接口Map复制的描述如果此map包含指定键的映射,则返回true。更正式地说,返回true当且仅当此map包含键k的映射使得Objects.equals(key, k)。 (最多可以有一个这样的映射。)- 指定者:
containsKey在接口Map<String,中List<String>> - 参数:
key- 要测试其在此map中是否存在的键- 返回:
true如果此map包含指定键的映射
-
containsValue
从接口Map复制的描述如果此map将一个或多个键映射到指定值,则返回true。更正式地说,返回true当且仅当此map包含至少一个映射到值v使得Objects.equals(value, v)。对于Map接口的大多数实现,此操作可能需要与映射大小成线性关系的时间。- 指定者:
containsValue在接口Map<String,中List<String>> - 参数:
value- 要测试其在此map中是否存在的值- 返回:
true如果此map将一个或多个键映射到指定值
-
get
从接口Map复制的描述返回指定键映射到的值,如果此map不包含键的映射,则返回null。更正式地说,如果此map包含从键
k到值v的映射,使得Objects.equals(key, k),则此方法返回v;否则返回null。 (最多可以有一个这样的映射。)如果此map允许空值,则
null的返回值不允许一定指示映射不包含键的映射;map也可能将密钥显式映射到null。containsKey操作可用于区分这两种情况。 -
getFirst
- 参数:
key- 要搜索的键- 返回:
-
与键关联的第一个
String值,或者null如果不存在键的映射
-
put
从接口Map复制的描述将指定值与此map中的指定键相关联(可选操作)。如果map先前包含键的映射,则旧值将替换为指定值。 (据说映射m包含键k的映射当且仅当m.containsKey(k)将返回true。) -
add
将给定的value添加到给定的key的标头列表中。如果map尚不存在,则会创建它。- 参数:
key- 标头名称value- 添加到标头的值
-
set
将给定的value设置为给定的key的唯一标头值。如果map尚不存在,则会创建它。- 参数:
key- 标头名称value- 要设置的标头值
-
remove
从接口Map复制的描述如果存在,则从此map中删除键的映射(可选操作)。更正式地说,如果此map包含从键k到值v的映射使得Objects.equals(key, k),则该map将被删除。 (map最多可以包含一个这样的映射。)返回此map先前与键相关联的值,如果map不包含键的映射,则返回
null。如果此map允许空值,则
null的返回值不允许一定指示映射不包含键的映射;map也可能将密钥显式映射到null。一旦调用返回,map将不包含指定键的映射。
-
putAll
从接口Map复制的描述将指定map中的所有映射复制到此map(可选操作)。此调用的效果等同于在指定map中从键k到值v的每个映射调用一次此map上的put(k, v)。如果指定的map在操作过程中被修改,则此操作的行为是未定义的。 -
clear
public void clear()从接口Map复制的描述从此map中删除所有映射(可选操作)。此调用返回后map将为空。 -
keySet
从接口Map复制的描述返回此map中包含的键的Set视图。该集合由map支持,因此对map的更改会反映在集合中,反之亦然。如果在对集合进行迭代时修改map(除了通过迭代器自己的remove操作),迭代的结果是不确定的。该集合支持元素删除,即通过Iterator.remove、Set.remove、removeAll、retainAll和clear操作从map中删除相应的映射。它不支持add或addAll操作。 -
values
从接口Map复制的描述返回此map中包含的值的Collection视图。集合由map支持,因此对map的更改会反映在集合中,反之亦然。如果在对集合进行迭代时修改map(除了通过迭代器自己的remove操作),迭代的结果是不确定的。该集合支持元素删除,即通过Iterator.remove、Collection.remove、removeAll、retainAll和clear操作从map中删除相应的映射。它不支持add或addAll操作。 -
entrySet
从接口Map复制的描述返回此map中包含的映射的Set视图。该集合由map支持,因此对map的更改会反映在集合中,反之亦然。如果在对集合进行迭代时映射被修改(除了通过迭代器自己的remove操作,或通过迭代器返回的映射条目上的setValue操作),迭代的结果是未定义的。该集合支持元素移除,即通过Iterator.remove、Set.remove、removeAll、retainAll和clear操作从map中移除相应的映射。它不支持add或addAll操作。 -
equals
从类复制的描述:Object指示某个其他对象是否“等于”这个对象。equals方法在非空对象引用上实现等价关系:- 这是反身的:对于任何非空参考值
x,x.equals(x)应该返回true。 - 这是对称的:对于任何非空参考值
x和y,当且仅当y.equals(x)返回true时,x.equals(y)应返回true。 - 这是transitive:对于任何非空引用值
x、y和z,如果x.equals(y)返回true并且y.equals(z)返回true,那么x.equals(z)应该返回true。 - 这是持续的:对于任何非空引用值
x和y,x.equals(y)的多次调用一致地返回true或一致地返回false,前提是在对象的equals比较中使用的信息没有被修改。 - 对于任何非空参考值
x,x.equals(null)应该返回false。
等价关系将其操作的元素划分为等价类;等价类的所有成员彼此相等。等价类的成员可以相互替代,至少出于某些目的。
- 这是反身的:对于任何非空参考值
-
hashCode
public int hashCode()从类复制的描述:Object返回对象的哈希码值。支持此方法是为了哈希表的好处,例如HashMap提供的哈希表。hashCode的总合同为: -
of
返回一个不可变的Headers,并将给定的名称值对作为其标头集。提供的
String实例必须交替作为标头名称和标头值。要将多个值添加到同一个名称,必须为每个新值提供相同的名称。如果提供的headers为空,则返回一个空的Headers。- 参数:
headers- 名称值对列表- 返回:
- 具有给定名称值对的不可变标头
- 抛出:
NullPointerException- 如果headers或其任何元素为空。IllegalArgumentException- 如果提供的字符串数量为奇数。- 自从:
- 18
-
of
从给定的headers返回具有相同标头名称和值的不可变Headers。- 参数:
headers- 标头名称和值的映射- 返回:
- 不可变的标头
- 抛出:
NullPointerException- 如果headers或其任何名称或值是 null,或者任何值包含 null。- 自从:
- 18
-