- java.lang.Object
-
- com.sun.net.httpserver.Headers
-
public class Headers extends Object implements Map<String,List<String>>
HTTP要求および応答ヘッダーは、インタフェースMap
<String
,List
<String
>>を実装するこのクラスによって表されます。 キーはヘッダー名を表す文字列であり、大文字と小文字は区別されません。各キーに関連付けられた値は、要求または応答内に出現する各ヘッダー名に対して1つの要素を持つList
<String
>です。たとえば、応答ヘッダーのインスタンスに「value1」と「value2」という2つの値を持つ1つのキー「HeaderName」が含まれている場合、このオブジェクトは2つのヘッダー行として出力されます。
HeaderName: value1 HeaderName: value2
通常の
Map
メソッドがすべて提供されますが、次の追加の簡易メソッドがよく使用される可能性があります。getFirst(String)
。単一値ヘッダーまたは複数値ヘッダーの最初の値を返します。add(String,String)
。指定されたキーのリストに、指定されたヘッダー値を追加します。set(String,String)
。指定されたヘッダー・フィールドに単一値を設定して、値リストの既存の値をすべて上書きします。
このクラスのどのメソッドでも、キーおよび値で
null
値が許容されます。 ただし、HTTP要求ヘッダーにnullキーが存在することはなく、応答ヘッダーで出力または送信されることもありません。 null値は、キーのnullエントリ(リストがnull)、またはキーにリストがあるがリストの1つ以上の値がnullである場合を表す可能性があります。 null値は、キーを含むが値が関連付けられていないヘッダー行として出力されます。- 導入されたバージョン:
- 1.6
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 Headers()
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 void
add(String key, String value)
指定されたキーのヘッダーのリストに、指定された値を追加します。void
clear()
マップからマッピングをすべて削除します(オプションの操作)。boolean
containsKey(Object key)
指定されたキーのマッピングがこのマップに含まれている場合にtrue
を返します。boolean
containsValue(Object value)
このマップが1つまたは複数のキーと指定された値をマッピングしている場合にtrue
を返します。Set<Map.Entry<String,List<String>>>
entrySet()
このマップに含まれるマッピングのSet
ビューを返します。boolean
equals(Object o)
このオブジェクトとほかのオブジェクトが等しいかどうかを示します。List<String>
get(Object key)
指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnull
を返します。String
getFirst(String key)
指定されたキーについて、文字列値のリストの最初の値を返します(少なくとも1つ存在する場合)。int
hashCode()
オブジェクトのハッシュ・コード値を返します。boolean
isEmpty()
このマップがキーと値のマッピングを保持しない場合にtrue
を返します。Set<String>
keySet()
このマップに含まれるキーのSet
ビューを返します。List<String>
put(String key, List<String> value)
指定された値と指定されたキーをこのマップで関連付けます(オプションの操作)。void
putAll(Map<? extends String,? extends List<String>> t)
指定されたマップのすべてのマッピングをこのマップにコピーします(オプションの操作)。List<String>
remove(Object key)
このマップからキーのマッピング(ある場合)を削除します(オプションの操作)。void
set(String key, String value)
指定された値を指定されたキーの唯一のヘッダー値として設定します。int
size()
このマップ内のキー値マッピングの数を返します。Collection<List<String>>
values()
このマップに含まれる値のCollection
ビューを返します。-
インタフェース java.util.Mapから継承されたメソッド
compute, computeIfAbsent, computeIfPresent, entry, forEach, getOrDefault, merge, of, of, of, of, of, of, of, of, of, of, of, ofEntries, putIfAbsent, remove, replace, replace, replaceAll
-
-
-
-
メソッドの詳細
-
size
public int size()
インタフェースからコピーされた説明:Map
このマップ内のキー値マッピングの数を返します。 マップ内にInteger.MAX_VALUE
より多くの要素がある場合は、Integer.MAX_VALUE
を返します。
-
isEmpty
public boolean isEmpty()
インタフェースからコピーされた説明:Map
このマップがキーと値のマッピングを保持しない場合にtrue
を返します。
-
containsKey
public boolean containsKey(Object key)
インタフェースからコピーされた説明:Map
指定されたキーのマッピングがこのマップに含まれている場合にtrue
を返します。 より正式には、このマップがObjects.equals(key, k)
のようなキーk
のマッピングを含む場合に限り、true
を返します。 このようなマッピングは1つのみ存在できます。- 定義:
containsKey
、インタフェース:Map<String,List<String>>
- パラメータ:
key
- このマップ内にあるかどうかが判定されるキー- 戻り値:
- 指定されたキーのマッピングがこのマップに含まれている場合は
true
-
containsValue
public boolean containsValue(Object value)
インタフェースからコピーされた説明:Map
このマップが1つまたは複数のキーと指定された値をマッピングしている場合にtrue
を返します。 より正式には、このマップがObjects.equals(value, v)
のような値v
への少なくとも1つのマッピングを含む場合に限り、true
を返します。Map
インタフェースのほとんどの実装で、このオペレーションにかかる時間はマップのサイズに正比例します。- 定義:
containsValue
、インタフェース:Map<String,List<String>>
- パラメータ:
value
- このマップにあるかどうかが判定される値- 戻り値:
- このマップが1つまたは複数のキーを指定された値にマッピングしている場合は
true
-
get
public List<String> get(Object key)
インタフェースからコピーされた説明:Map
指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnull
を返します。より正式には、このマップにキー
k
からObjects.equals(key, k)
のような値v
へのマッピングが含まれている場合、このメソッドはv
を返します; それ以外の場合は、null
を返します。 このようなマッピングは1つのみ存在できます。このマップがnull値を許可する場合、戻り値の
null
は、マップがキーのマッピングを保持していないことを示すとはかぎりません。つまり、マップが明示的にキーをnull
にマップすることもあります。containsKey
操作を使うと、これら2つのケースを見分けることができます。
-
getFirst
public String getFirst(String key)
指定されたキーについて、文字列値のリストの最初の値を返します(少なくとも1つ存在する場合)。- パラメータ:
key
- 検索するキー- 戻り値:
- キーに関連付けられた最初の文字列値
-
put
public List<String> put(String key, List<String> value)
インタフェースからコピーされた説明:Map
指定された値と指定されたキーをこのマップで関連付けます(オプションの操作)。 マップにすでにこのキーに対するマッピングがある場合、古い値は指定された値に置き換えられます。m.containsKey(k)
がtrue
を返す場合に限り、マップm
はキーk
のマッピングを含むと言えます。
-
add
public void add(String key, String value)
指定されたキーのヘッダーのリストに、指定された値を追加します。 マッピングがまだ存在しない場合は、作成されます。- パラメータ:
key
- ヘッダー名value
- ヘッダーに追加するヘッダー値
-
set
public void set(String key, String value)
指定された値を指定されたキーの唯一のヘッダー値として設定します。 マッピングがまだ存在しない場合は、作成されます。- パラメータ:
key
- ヘッダー名value
- 設定するヘッダー値。
-
remove
public List<String> remove(Object key)
インタフェースからコピーされた説明:Map
このマップからキーのマッピング(ある場合)を削除します(オプションの操作)。 より正式には、このマップに、k
からObjects.equals(key, k)
のような値v
へのマッピングが含まれている場合、そのマッピングは削除されます。 マップはこのようなマッピングを1つだけ含めることができます。このマップが以前にこのキーを関連付けていた値を返します。キーに対するマッピングがマップになかった場合は
null
を返します。このマップがnull値を許可する場合、戻り値の
null
は、マップがキーのマッピングを保持していなかったことを示すとはかぎりません。つまり、マップが明示的にキーをnull
にマップしていた可能性もあります。呼出しが戻ると、マップは指定されたキーのマッピングを含まなくなります。
-
putAll
public void putAll(Map<? extends String,? extends List<String>> t)
インタフェースからコピーされた説明:Map
指定されたマップのすべてのマッピングをこのマップにコピーします(オプションの操作)。 この呼出しの効果は、指定されたマップ内のキーk
から値v
へのマッピングごとに、このマップに対してput(k, v)
を1回呼び出した場合と同じです。 オペレーションの進行中に、指定されたマップが変更された場合の、このオペレーションの動作は定義されていません。
-
clear
public void clear()
インタフェースからコピーされた説明:Map
マップからマッピングをすべて削除します(オプションの操作)。 この呼出しが戻ると、マップは空になります。
-
keySet
public Set<String> keySet()
インタフェースからコピーされた説明:Map
このマップに含まれるキーのSet
ビューを返します。 セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。 セットの反復処理中にマップが変更された場合、反復処理の結果は定義されていません(イテレータ自身のremove
オペレーションを除く)。 セットは要素の削除をサポートします。Iterator.remove
、Set.remove
、removeAll
、retainAll
、およびclear
オペレーションで対応するマッピングをマップから削除します。add
またはaddAll
操作はサポートされていません。
-
values
public Collection<List<String>> values()
インタフェースからコピーされた説明:Map
このマップに含まれる値のCollection
ビューを返します。 コレクションはマップと連動しているので、マップに対する変更はコレクションに反映され、またコレクションに対する変更はマップに反映されます。 コレクションの反復処理中にマップが変更された場合、反復処理の結果は定義されません(イテレータ自身のremove
オペレーションを除く)。 コレクションは要素の削除をサポートしており、対応するマッピングをマップから削除できます。削除は、Iterator.remove
、Collection.remove
、removeAll
、retainAll
、およびclear
オペレーションを通して行います。add
またはaddAll
操作はサポートされていません。
-
entrySet
public Set<Map.Entry<String,List<String>>> entrySet()
インタフェースからコピーされた説明:Map
このマップに含まれるマッピングのSet
ビューを返します。 セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。 セットの反復処理中にマップが変更された場合、反復処理の結果は定義されません(イテレータ自身のremove
オペレーション、またはイテレータにより返されるマップ・エントリに対するsetValue
オペレーションを除く)。 セットは要素の削除をサポートしており、対応するマッピングをマップから削除できます。削除は、Iterator.remove
、Set.remove
、removeAll
、retainAll
、およびclear
オペレーションを通して行います。add
またはaddAll
操作はサポートされていません。
-
equals
public boolean equals(Object o)
次のクラスからコピーされた説明:Object
このオブジェクトとほかのオブジェクトが等しいかどうかを示します。equals
メソッドは、null以外のオブジェクト参照での同値関係を実装します。- 反射性(reflexive): null以外の参照値
x
について、x.equals(x)
はtrue
を返します。 - 対称性(symmetric): null以外の参照値
x
およびy
について、y.equals(x)
がtrue
を返す場合に限り、x.equals(y)
はtrue
を返します。 - 推移性(transitive): null以外の参照値
x
、y
、およびz
について、x.equals(y)
がtrue
を返し、y.equals(z)
がtrue
を返す場合、x.equals(z)
はtrue
を返します。 - 一貫性(consistent): null以外の参照値
x
およびy
について、x.equals(y)
の複数の呼出しは、このオブジェクトに対するequals
による比較で使われた情報が変更されていなければ、一貫してtrue
を返すか、一貫してfalse
を返します。 - null以外の参照値
x
について、x.equals(null)
はfalse
を返します。
Object
クラスのequals
メソッドは、もっとも比較しやすいオブジェクトの同値関係を実装します。つまり、null以外の参照値x
とy
について、このメソッドはx
とy
が同じオブジェクトを参照する(x == y
がtrue
)場合にだけtrue
を返します。通常、このメソッドをオーバーライドする場合は、
hashCode
メソッドを常にオーバーライドして、「等価なオブジェクトは等価なハッシュ・コードを保持する必要がある」というhashCode
メソッドの汎用規約に従う必要があることに留意してください。 - 反射性(reflexive): null以外の参照値
-
hashCode
public int hashCode()
次のクラスからコピーされた説明:Object
オブジェクトのハッシュ・コード値を返します。 このメソッドは、HashMap
によって提供されるハッシュ表などの、ハッシュ表の利点のためにサポートされています。hashCode
の一般的な規則は次のとおりです。- Javaアプリケーションの実行中に同じオブジェクトに対して複数回呼び出された場合は常に、このオブジェクトに対する
equals
の比較で使用される情報が変更されていなければ、hashCode
メソッドは常に同じ整数を返す必要があります。 ただし、この整数は同じアプリケーションの実行ごとに同じである必要はありません。 equals(Object)
メソッドに従って2つのオブジェクトが等しい場合は、2つの各オブジェクトに対するhashCode
メソッドの呼出しによって同じ整数の結果が生成される必要があります。Object.equals(java.lang.Object)
メソッドに従って2つのオブジェクトが等しくない場合は、2つの各オブジェクトに対するhashCode
メソッドの呼出しによって異なる整数の結果が生成される必要はありません。 ただし、プログラマは、等しくないオブジェクトに対して異なる整数の結果を生成すると、ハッシュ表のパフォーマンスが向上する可能性があることに注意するようにしてください。
クラス
Object
によって定義されたhashCodeメソッドは、可能なかぎり、異なるオブジェクトに対して異なる整数を返します。 (hashCodeは、ある時点におけるオブジェクト・メモリー・アドレスの関数として実装されても実装されなくてもよい。)- 定義:
hashCode
、インタフェース:Map<String,List<String>>
- オーバーライド:
hashCode
、クラス:Object
- 戻り値:
- このオブジェクトのハッシュ・コード値。
- 関連項目:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
- Javaアプリケーションの実行中に同じオブジェクトに対して複数回呼び出された場合は常に、このオブジェクトに対する
-
-