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