- java.lang.Object
-
- java.util.Dictionary<K,V>
-
- java.util.Hashtable<Object,Object>
-
- java.util.Properties
-
- すべての実装されたインタフェース:
Serializable
,Cloneable
,Map<Object,Object>
- 直系の既知のサブクラス:
Provider
public class Properties extends Hashtable<Object,Object>
Properties
クラスは、プロパティの永続セットを表します。Properties
を、ストリームへ保管したり、ストリームからロードしたりできます。 プロパティ・リストの各キー、およびそれに対応する値は文字列です。プロパティ・リストには、そのデフォルト値として別のプロパティ・リストを含めることができます。元のプロパティ・リストでプロパティ・キーが見つからない場合は、この2番目のプロパティ・リストが検索されます。
Properties
はHashtable
を継承するので、Properties
オブジェクトに対してput
メソッドおよびputAll
メソッドを適用できます。 しかし、これらのメソッドを使用することは推奨されません。これらのメソッドを使うと、呼出し側はキーまたは値がStrings
ではないエントリを挿入できるからです。setProperty
メソッドを代わりに使用してください。String
以外のキーまたは値を格納する安全性の低いProperties
オブジェクトでstore
メソッドまたはsave
メソッドが呼び出されると、その呼出しは失敗します。 同様に、String
以外のキーを格納する安全性の低いProperties
オブジェクトでpropertyNames
またはlist
メソッドが呼び出されると、その呼出しは失敗します。このクラス"コレクション・ビュー" (すなわち、
entrySet()
、keySet()
、およびvalues()
)のiterator
メソッドによって返されたイテレータは、高速の(ハッシュテーブルの実装とは異なり)を生成しません。 これらのイテレータは、構築時に存在していた要素を1回だけトラバースすることが保証されており、構築後の変更を反映することがあります(しかし、保証されない)。load(Reader)
/
store(Writer, String)
メソッドは、以下に示す単純行指向のフォーマットでプロパティを文字ベース・ストリームに対してロードおよび格納します。load(InputStream)
/
store(OutputStream, String)
メソッドはload(Reader)/store(Writer, String)ペアと同様に動作しますが、入力/出力ストリームがISO 8859-1文字エンコーディングでエンコードされる点が異なります。 このエンコーディングで直接表現できない文字は、『Java™言語仕様』のセクション3.3で定義されているUnicodeエスケープを使用して記述できます。エスケープ・シーケンスで許可されるのは、単一u文字だけです。loadFromXML(InputStream)
およびstoreToXML(OutputStream, String, String)
メソッドは、プロパティを単純なXML形式としてロードおよび格納できます。 デフォルトではUTF-8文字エンコーディングが使用されますが、必要に応じてエンコーディングを指定できます。 実装はUTF-8とUTF-16をサポートする必要があり、その他のエンコーディングもサポートできます。 XMLプロパティ・ドキュメントでは、次のDOCTYPE宣言が使用されます。<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
プロパティをエクスポート/インポートするときに、システムURI (http://java.sun.com/dtd/properties.dtd)にはアクセスしません。システムURIは、DTDを一意に識別する文字列として使用されます。その内容は次のとおりです。<?xml version="1.0" encoding="UTF-8"?> <!-- DTD for properties --> <!ELEMENT properties ( comment?, entry* ) > <!ATTLIST properties version CDATA #FIXED "1.0"> <!ELEMENT comment (#PCDATA) > <!ELEMENT entry (#PCDATA) > <!ATTLIST entry key CDATA #REQUIRED>
このクラスはスレッドセーフです。外部の同期化を行わなくても、複数のスレッドで単一の
Properties
オブジェクトを共有できます。- 導入されたバージョン:
- 1.0
- 関連項目:
- 直列化された形式
-
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 protected Properties
defaults
プロパティ・リストにないキーのデフォルト値を持つプロパティ・リストです。
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 Properties()
デフォルト値を持たない空のプロパティ・リストを作成します。Properties(Properties defaults)
指定されたデフォルト値を持つ空のプロパティ・リストを作成します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 非推奨のメソッド 修飾子と型 メソッド 説明 void
clear()
このハッシュ表を消去して、キーがない状態にします。Object
clone()
ハッシュ表のコピーを作成します。Object
compute(Object key, BiFunction<? super Object,? super Object,?> remappingFunction)
指定されたキーと現在マップされている値に対するマッピングの計算を試みます(現在のマッピングが存在しない場合はnull
)。Object
computeIfAbsent(Object key, Function<? super Object,?> mappingFunction)
指定されたキーがまだ値に関連付けられていない(またはnull
にマップされている)場合、指定されたマッピング関数を使用してその値の計算を試行し、null
でない場合はそれをこのマップに入力します。Object
computeIfPresent(Object key, BiFunction<? super Object,? super Object,?> remappingFunction)
指定されたキーの値が存在していてnull以外の場合、キーと現在マップされている値から新しいマッピングの計算を試みます。boolean
contains(Object value)
指定された値にマップされているキーが、ハッシュ表にあるかどうかを判定します。boolean
containsKey(Object key)
指定されたオブジェクトが、ハッシュ表のキーかどうかを判定します。boolean
containsValue(Object value)
このハッシュ表が1つまたは複数のキーをこの値にマッピングする場合にtrueを返します。Enumeration<Object>
elements()
ハッシュ表にある値のリストを返します。Set<Map.Entry<Object,Object>>
entrySet()
このマップに含まれるマッピングのSet
ビューを返します。boolean
equals(Object o)
Mapインタフェースでの定義に従って、指定されたObjectとこのMapを比較して等しいかどうかを判定します。void
forEach(BiConsumer<? super Object,? super Object> action)
このマップのすべてのエントリの処理が完了するかアクションから例外がスローされるまで、各エントリに対して指定されたアクションを実行します。Object
get(Object key)
指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnull
を返します。Object
getOrDefault(Object key, Object defaultValue)
指定されたキーがマップされている値を返します。このマップにそのキーのマッピングが含まれていない場合はdefaultValue
を返します。String
getProperty(String key)
指定されたキーを持つプロパティを、プロパティ・リストから探します。String
getProperty(String key, String defaultValue)
指定されたキーを持つプロパティを、プロパティ・リストから探します。int
hashCode()
Mapインタフェースの定義に従って、このMapのハッシュ・コード値を返します。boolean
isEmpty()
値にマップされているキーが、ハッシュ表にあるかどうかを判定します。Enumeration<Object>
keys()
ハッシュ表にあるキーのリストを返します。Set<Object>
keySet()
このマップに含まれるキーのSet
ビューを返します。void
list(PrintStream out)
指定された出力ストリームに、プロパティ・リストを出力します。void
list(PrintWriter out)
指定された出力ストリームに、プロパティ・リストを出力します。void
load(InputStream inStream)
入力バイト・ストリームからキーと要素が対になったプロパティ・リストを読み込みます。void
load(Reader reader)
プロパティ・リスト(キーと要素のペア)を入力文字ストリームから単純な行指向形式で読み込みます。void
loadFromXML(InputStream in)
指定された入力ストリーム上のXMLドキュメントにより表されるすべてのプロパティを、このプロパティ表にロードします。Object
merge(Object key, Object value, BiFunction<? super Object,? super Object,?> remappingFunction)
指定されたキーがまだ値と関連付けられていないかnullと関連付けられている場合、指定されたnull以外の値に関連付けます。Enumeration<?>
propertyNames()
メイン・プロパティ・リストに同じ名前のキーが見つからない場合は、デフォルトのプロパティ・リストにある個別のキーを含む、このプロパティ・リストにあるすべてのキーの列挙を返します。Object
put(Object key, Object value)
このハッシュ表で、指定されたkey
を指定されたvalue
にマップします。void
putAll(Map<?,?> t)
指定したマップからこのハッシュ表にすべてのマッピングをコピーします。Object
putIfAbsent(Object key, Object value)
指定されたキーがまだ値に関連付けられていない(または、null
にマップされている)場合は、それを指定された値に関連付けてnull
を返します。それ以外の場合は、現在の値を返します。protected void
rehash()
ハッシュ表の容量を増やし、それを内部的に再編成して、エントリを調整してアクセスをより効率的にします。Object
remove(Object key)
キー(およびそれに対応する値)をハッシュ表から削除します。boolean
remove(Object key, Object value)
指定された値に指定されたキーが現在マッピングされている場合にのみ、そのキーのエントリを削除します。Object
replace(Object key, Object value)
指定されたキーがなんらかの値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。void
replaceAll(BiFunction<? super Object,? super Object,?> function)
すべてのエントリが処理されるか、または関数が例外をスローするまで、各エントリの値を、そのエントリで指定された関数を呼び出した結果で置換します。void
save(OutputStream out, String comments)
非推奨。このメソッドは、プロパティ・リストの保存中に入出力エラーが発生しても、IOExceptionをスローしません。 プロパティ・リストの保存に推奨される方法は、store(OutputStream out, String comments)
メソッドまたはstoreToXML(OutputStream os, String comment)
メソッドを使用することです。Object
setProperty(String key, String value)
Hashtable
のメソッドput
を呼び出します。int
size()
ハッシュ表にあるキーの数を返します。void
store(OutputStream out, String comments)
このProperties
表内のプロパティ・リスト(キーと要素のペア)を、load(InputStream)
メソッドを使用してProperties
表にロードするのに適した形式で出力ストリームに書き込みます。void
store(Writer writer, String comments)
このProperties
表内のプロパティ・リスト(キーと要素のペア)を、load(Reader)
メソッドを使用するのに適した形式で出力文字ストリームに書き込みます。void
storeToXML(OutputStream os, String comment)
この表に含まれるすべてのプロパティを表すXMLドキュメントを発行します。void
storeToXML(OutputStream os, String comment, String encoding)
この表に含まれるすべてのプロパティを表すXMLドキュメントを、指定されたエンコーディングを使用して発行します。Set<String>
stringPropertyNames()
このプロパティ・リストからキーと対応する値が文字列である変更不可能なキー・セットを返します。同じ名前のキーがメイン・プロパティ・リストから見つからない場合は、デフォルト・プロパティ・リスト内の別のキーも含めて返します。String
toString()
このHashtable
オブジェクトの文字列表現を、ASCII文字,
(カンマとスペース)で区切り、カッコで囲んだ一連のエントリの形式で返します。Collection<Object>
values()
このマップに含まれる値のCollection
ビューを返します。
-
-
-
フィールドの詳細
-
defaults
protected Properties defaults
プロパティ・リストにないキーのデフォルト値を持つプロパティ・リストです。
-
-
コンストラクタの詳細
-
プロパティ
public Properties()
デフォルト値を持たない空のプロパティ・リストを作成します。
-
プロパティ
public Properties(Properties defaults)
指定されたデフォルト値を持つ空のプロパティ・リストを作成します。- パラメータ:
defaults
- デフォルト値。
-
-
メソッドの詳細
-
setProperty
public Object setProperty(String key, String value)
Hashtable
のメソッドput
を呼び出します。getProperty
メソッドと対になります。 プロパティのキーおよび値に文字列を使うことを義務付けます。 返される値はput
へのHashtable
呼出しの結果です。- パラメータ:
key
- プロパティ・リストに配置されるキー。value
-key
に対応する値。- 戻り値:
- このプロパティ・リスト内での指定されたキーの以前の値。このキーが値を持っていなかった場合は
null
。 - 導入されたバージョン:
- 1.2
- 関連項目:
getProperty(java.lang.String)
-
load
public void load(Reader reader) throws IOException
プロパティ・リスト(キーと要素のペア)を入力文字ストリームから単純な行指向形式で読み込みます。Propertiesは行単位で処理されます。 行には自然行と論理行の2種類があります。 自然行は、行末記号(
\n
、\r
、または\r\n
)のセットまたはストリームの末尾で区切られた1行の文字列として定義されます。 自然行は、空白の行やコメント行であるか、キーと要素のペアの全部または一部を保持する場合があります。 論理行は、キーと要素のペアの全データを保持します。バックスラッシュ文字\
を使用して行末記号シーケンスをエスケープすることで、隣接する複数の自然行にまたがる場合があります。 コメント行を、この方法で複数行にまたがらせることはできません。後述するように、コメントであるすべての自然行には、それぞれにコメント・インジケータが必要です。 行は、ストリームの終わりに達するまで入力から読み込まれます。空白文字だけを含む自然行は、空白と見なされて無視されます。 コメント行には、ASCII
'#'
または'!'
が最初の非空白文字として含まれます。コメント行も無視され、キーと要素の情報はエンコードされません。 このフォーマットは、行終了文字に加え、文字スペース(' '
、'\u0020'
)、タブ('\t'
、'\u0009'
)、およびフォーム・フィード('\f'
、'\u000C'
)を空白と見なします。論理行が複数の自然行にまたがる場合、行末記号シーケンスをエスケープするバックスラッシュ、行末記号シーケンス、および次の行の先頭の空白文字は、キーまたは要素の値に何の影響も及ぼしません。 (ロード時の)キーと要素の構文解析に関する残りの記述では、行継続文字が削除されたあとで、キーと要素を構成するすべての文字が単一の自然行に表示されることを前提として説明します。 行末記号がエスケープされているかどうかを判定する場合、行末記号シーケンスの前の文字を調べるだけでは十分ではありません。行末記号がエスケープされるためには、連続した奇数のバックスラッシュが存在する必要があります。 入力は左から右に処理されるため、行末記号の前(またはほかの場所)に連続したバックスラッシュが2n (ゼロでない偶数)個存在する場合、エスケープ処理後にn個のバックスラッシュがエンコードされます。
キーには最初の非空白文字から、最初のエスケープされていない
'='
、':'
、または空白文字の手前までの文字すべて(行末記号を除く)が含まれます。 これらキーの終わりを示す文字はすべて、バックスラッシュを前に付けてエスケープすることでキーに含めることができます。たとえば、\:\=
には、2文字のキー
":="
が含まれます。 行末記号は、エスケープ・シーケンス\r
および\n
を使用して含めることができます。 キーのあとの空白はすべてスキップされます。キーに続く最初の非空白文字が'='
または':'
である場合、これは無視され、その後の空白文字もすべてスキップされます。 行上の残りのすべての文字は、関連付けられた要素文字列の一部になります。残りの文字がない場合、その要素は空の文字列""
です。 キーと要素を構成する生の文字シーケンスが識別されると、エスケープ処理が前述の方法で実行されます。たとえば、次の3行はそれぞれキー
"Truth"
と、関連した要素値"Beauty"
を表します。Truth = Beauty Truth:Beauty Truth :Beauty
また、次の3行は1つのプロパティを表します。fruits apple, banana, pear, \ * cantaloupe, watermelon, \ * kiwi, mango
キーは"fruits"
で、次の要素に関連付けれられています。"apple, banana, pear, cantaloupe, watermelon, kiwi, mango"
最終的な結果でカンマのあとに必ずスペースが表示されるように、各\
の前にスペースがあります。行の終わりを示す\
と、継続行の先頭にある空白は破棄され、ほかの文字に置換されません。また、次の3番目の例では、行:
cheeses
は、キーが"cheeses"
で、関連付けられている要素が空の文字列""
であることを表します。キーと要素に含まれる文字は、文字リテラルや文字列リテラルで使用されるエスケープ・シーケンスに似たシーケンスで表現できます(Java™言語仕様のセクション3.3と3.10.6を参照)。 文字および文字列で使用される文字エスケープ・シーケンスやUnicodeエスケープとの違いは、次のとおりです。
- 8進数のエスケープは認識されない
- 文字シーケンス
\b
は、バックスペース文字を表さない。 - このメソッドは、無効なエスケープ文字の前のバックスラッシュ文字
\
をエラーとして処理しない。バックスラッシュは自動的に削除される。 たとえば、Java文字列にシーケンス"\z"
が含まれていると、コンパイル時にエラーが発生する。 これに対し、このメソッドは自動的にバックスラッシュを削除する。 このため、このメソッドでは2文字のシーケンス"\b"
は単一の文字'b'
と等価であると見なされる。 - 単一引用符および二重引用符では、エスケープは不要である。ただし、前述のルールに従って、バックスラッシュに続く単一および二重引用符文字は、それぞれ単一引用符文字と二重引用符文字として処理される。
- Unicodeエスケープ・シーケンスで許可されるのは単一u文字のみ。
指定されたストリームは、このメソッドが復帰したあとも開いたままです。
- パラメータ:
reader
- 入力文字ストリーム。- 例外:
IOException
- 入力ストリームからの読込み中にエラーが発生した場合。IllegalArgumentException
- 形式が不正なUnicodeエスケープが入力内に現れた場合。NullPointerException
-reader
がnullである場合- 導入されたバージョン:
- 1.6
-
load
public void load(InputStream inStream) throws IOException
入力バイト・ストリームからキーと要素が対になったプロパティ・リストを読み込みます。 入力ストリームはload(Reader)
で規定される単純行指向フォーマットで、ISO 8859-1文字エンコーディングを使用することが前提されます。つまり、各バイトは1つのLatin1文字です。 Latin1にない文字、および一部の特殊文字は、キーや要素内で『Java™言語仕様』のセクション3.3で定義されているUnicodeエスケープを使用して表現されます。指定されたストリームは、このメソッドが復帰したあとも開いたままです。
- パラメータ:
inStream
- 入力ストリーム。- 例外:
IOException
- 入力ストリームからの読込み中にエラーが発生した場合。IllegalArgumentException
- 入力ストリームに形式が不正なUnicodeエスケープ・シーケンスが含まれる場合。NullPointerException
-inStream
がnullの場合。- 導入されたバージョン:
- 1.2
-
save
@Deprecated public void save(OutputStream out, String comments)
非推奨。 このメソッドは、プロパティ・リストの保存中に入出力エラーが発生しても、IOExceptionをスローしません。 プロパティ・リストの保存に推奨される方法は、store(OutputStream out, String comments)
メソッドまたはstoreToXML(OutputStream os, String comment)
メソッドを使用することです。store(OutputStream out, String comments)
メソッドを呼び出し、スローされたIOExceptionを抑止します。- パラメータ:
out
- 出力ストリーム。comments
- プロパティ・リストの記述。- 例外:
ClassCastException
- このProperties
オブジェクトに、Strings
ではないキーまたは値が含まれている場合。
-
store
public void store(Writer writer, String comments) throws IOException
このProperties
表内のプロパティ・リスト(キーと要素のペア)を、load(Reader)
メソッドを使用するのに適した形式で出力文字ストリームに書き込みます。この
Properties
表(存在する場合)のデフォルト表からのプロパティは、このメソッドによって書き込まれません。comments引数がnullでない場合は、ASCII文字の
#
、commentsの文字列、および行区切り文字が最初に出力ストリームに書き込まれます。 このため、comments
は識別コメントとして使うことができます。 改行(\n)、キャリッジ・リターン(\r)、改行が直後に続くキャリッジ・リターン、のいずれかがコメント内に現れると、それは、Writer
によって生成された1個の行区切り文字で置き換えられます。そして、コメント内の次の文字が文字#
でも文字!
でもなかった場合、その行区切り文字のあとにASCII#
が書き出されます。次に、ASCII文字の
#
、現在の日時(Date
のtoString
メソッドによって現在時刻が生成されるのと同様)、およびWriter
によって生成される行区切り文字からなるコメント行が書き込まれます。続いて、この
Properties
表内のすべてのエントリが1行に1つずつ書き出されます。 各エントリのキー文字列、ASCII文字の=
、関連付けられた要素文字列が書き込まれます。 キーの場合、すべての空白文字は、前に\
文字を付けて書き込まれます。 要素の場合、埋込み空白文字でも後書き空白文字でもない先行空白文字は、前に\
を付けて書き込まれます。 キーと要素の文字#
、!
、=
、および:
は、必ず正しくロードされるように、前にバックスラッシュを付けて書き込まれます。エントリが書き込まれたあとで、出力ストリームがフラッシュされます。 出力ストリームはこのメソッドから復帰したあとも開いたままです。
- パラメータ:
writer
- 出力文字ストリーム・ライター。comments
- プロパティ・リストの記述。- 例外:
IOException
- 指定された出力ストリームへのこのプロパティ・リストの書込み時にIOException
がスローされた場合。ClassCastException
- このProperties
オブジェクトに、Strings
ではないキーまたは値が含まれている場合。NullPointerException
-writer
がnullである場合。- 導入されたバージョン:
- 1.6
-
store
public void store(OutputStream out, String comments) throws IOException
このProperties
表内のプロパティ・リスト(キーと要素のペア)を、load(InputStream)
メソッドを使用してProperties
表にロードするのに適した形式で出力ストリームに書き込みます。この
Properties
表(存在する場合)のデフォルト表からのプロパティは、このメソッドによって書き込まれません。このメソッドは、コメントおよびプロパティのキーと値を、
store(Writer)
で規定されたのと同じ形式で出力します。ただし、次の点が異なります。- ストリームは、ISO 8859-1文字エンコーディングを使用して書き込まれる。
- コメント内のLatin-1でない文字は、適切なUnicode 16進値xxxxを使用して
\u
xxxxとして書き込まれる。 - プロパティのキーまたは値に含まれる
\u0020
より小さい文字および\u007E
より大きい文字は、適切な16進値xxxxを使用して\u
xxxxとして書き込まれる。
エントリが書き込まれたあとで、出力ストリームがフラッシュされます。 出力ストリームはこのメソッドから復帰したあとも開いたままです。
- パラメータ:
out
- 出力ストリーム。comments
- プロパティ・リストの記述。- 例外:
IOException
- 指定された出力ストリームへのこのプロパティ・リストの書込み時にIOException
がスローされた場合。ClassCastException
- このProperties
オブジェクトに、Strings
ではないキーまたは値が含まれている場合。NullPointerException
-out
がnullである場合。- 導入されたバージョン:
- 1.2
-
loadFromXML
public void loadFromXML(InputStream in) throws IOException, InvalidPropertiesFormatException
指定された入力ストリーム上のXMLドキュメントにより表されるすべてのプロパティを、このプロパティ表にロードします。XMLドキュメントには、次のDOCTYPE宣言が必要です。
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
さらに、ドキュメントは前述のプロパティDTDを満たす必要があります。実装は、
UTF-8
またはUTF-16
エンコーディングを使用するXMLドキュメントを読み取る必要があります。 実装は追加のエンコーディングをサポートできます。このメソッドが戻ると、指定されたストリームが閉じられます。
- パラメータ:
in
- XMLドキュメントの読込み元の入力ストリーム。- 例外:
IOException
- 指定された入力ストリームからの読込み時にIOException
が発生した場合。UnsupportedEncodingException
- ドキュメントのエンコーディング宣言を読み取ることができ、そこにサポートされていないエンコーディングが指定されている場合InvalidPropertiesFormatException
- 入力ストリーム上のデータが、要求されたドキュメント型を持つ有効なXMLドキュメントにならない場合。NullPointerException
-in
がnullである場合。- 導入されたバージョン:
- 1.5
- 関連項目:
storeToXML(OutputStream, String, String)
、Character Encoding in Entities
-
storeToXML
public void storeToXML(OutputStream os, String comment) throws IOException
この表に含まれるすべてのプロパティを表すXMLドキュメントを発行します。このメソッドを
props.storeToXML(os, comment)
の形式で呼び出した場合、props.storeToXML(os, comment, "UTF-8");
の呼び出しと同じ結果が得られます。- パラメータ:
os
- XMLドキュメントの発行先の出力ストリームcomment
- プロパティ・リストの記述。コメントが必要ない場合はnull
。- 例外:
IOException
- 指定された出力ストリームへの書込み時にIOException
が発生した場合。NullPointerException
-os
がnullである場合。ClassCastException
- このProperties
オブジェクトに、Strings
ではないキーまたは値が含まれている場合。- 導入されたバージョン:
- 1.5
- 関連項目:
loadFromXML(InputStream)
-
storeToXML
public void storeToXML(OutputStream os, String comment, String encoding) throws IOException
この表に含まれるすべてのプロパティを表すXMLドキュメントを、指定されたエンコーディングを使用して発行します。このXMLドキュメントでは、次のDOCTYPEが宣言されます。
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
指定されたコメントが
null
の場合、ドキュメントにコメントは格納されません。実装は、
UTF-8
またはUTF-16
エンコーディングを使用するXMLドキュメントの書込みをサポートする必要があります。 実装は追加のエンコーディングをサポートできます。指定されたストリームは、このメソッドが復帰したあとも開いたままです。
- パラメータ:
os
- XMLドキュメントの発行先の出力ストリームcomment
- プロパティ・リストの記述。コメントが必要ない場合はnull
。encoding
- サポートされる文字エンコーディングの名前- 例外:
IOException
- 指定された出力ストリームへの書込み時にIOException
が発生した場合。UnsupportedEncodingException
- エンコーディングが実装によってサポートされない場合。NullPointerException
-os
がnull
、またはencoding
がnull
の場合。ClassCastException
- このProperties
オブジェクトに、Strings
ではないキーまたは値が含まれている場合。- 導入されたバージョン:
- 1.5
- 関連項目:
loadFromXML(InputStream)
、Character Encoding in Entities
-
getProperty
public String getProperty(String key)
指定されたキーを持つプロパティを、プロパティ・リストから探します。 そのキーがプロパティ・リストにないと、デフォルトのプロパティ・リスト、さらにそのデフォルト値が繰返し調べられます。 そのプロパティが見つからない場合は、null
が返されます。- パラメータ:
key
- プロパティ・キー。- 戻り値:
- 指定されたキー値を持つこのプロパティ・リストの値。
- 関連項目:
setProperty(java.lang.String, java.lang.String)
,defaults
-
getProperty
public String getProperty(String key, String defaultValue)
指定されたキーを持つプロパティを、プロパティ・リストから探します。 そのキーがプロパティ・リストにないと、デフォルトのプロパティ・リスト、さらにそのデフォルト値が繰返し調べられます。 そのプロパティが見つからない場合は、デフォルト値の引数が返されます。- パラメータ:
key
- ハッシュ表キー。defaultValue
- デフォルト値。- 戻り値:
- 指定されたキー値を持つこのプロパティ・リストの値。
- 関連項目:
setProperty(java.lang.String, java.lang.String)
,defaults
-
propertyNames
public Enumeration<?> propertyNames()
メイン・プロパティ・リストに同じ名前のキーが見つからない場合は、デフォルトのプロパティ・リストにある個別のキーを含む、このプロパティ・リストにあるすべてのキーの列挙を返します。- 戻り値:
- プロパティ・リストにあるすべてのキーの列挙。デフォルトのプロパティ・リストにあるキーを含む。
- 例外:
ClassCastException
- 文字列でないキーがこのプロパティ・リスト内に存在する場合。- 関連項目:
Enumeration
,defaults
,stringPropertyNames()
-
stringPropertyNames
public Set<String> stringPropertyNames()
このプロパティ・リストからキーと対応する値が文字列である変更不可能なキー・セットを返します。同じ名前のキーがメイン・プロパティ・リストから見つからない場合は、デフォルト・プロパティ・リスト内の別のキーも含めて返します。 キーまたは値がString
型でないプロパティは省略されます。返されたセットは、この
Properties
オブジェクトによってサポートされていません。 このProperties
オブジェクトへの変更は、返されたセットに反映されません。- 戻り値:
- このプロパティ・リスト内の変更不可能なキーのセット。デフォルトのプロパティ・リストのキーを含め、キーとその対応する値が文字列です。
- 導入されたバージョン:
- 1.6
- 関連項目:
defaults
-
list
public void list(PrintStream out)
指定された出力ストリームに、プロパティ・リストを出力します。 このメソッドはデバッグに便利です。- パラメータ:
out
- 出力ストリーム。- 例外:
ClassCastException
- 文字列でないキーがこのプロパティ・リスト内に存在する場合。
-
list
public void list(PrintWriter out)
指定された出力ストリームに、プロパティ・リストを出力します。 このメソッドはデバッグに便利です。- パラメータ:
out
- 出力ストリーム。- 例外:
ClassCastException
- 文字列でないキーがこのプロパティ・リスト内に存在する場合。- 導入されたバージョン:
- 1.1
-
size
public int size()
クラスからコピーされた説明:Hashtable
ハッシュ表にあるキーの数を返します。
-
isEmpty
public boolean isEmpty()
クラスからコピーされた説明:Hashtable
値にマップされているキーが、ハッシュ表にあるかどうかを判定します。
-
keys
public Enumeration<Object> keys()
クラスからコピーされた説明:Hashtable
ハッシュ表にあるキーのリストを返します。 返されたオブジェクトのEnumerationメソッドを使用して、キーを順番に取得します。 ハッシュテーブルがキーの上で列挙している間に構造的に変更されている場合、列挙型の結果は未定義です。- オーバーライド:
keys
、クラス:Hashtable<Object,Object>
- 戻り値:
- ハッシュ表にあるキーのリスト。
- 関連項目:
Enumeration
,Hashtable.elements()
,Hashtable.keySet()
,Map
-
elements
public Enumeration<Object> elements()
クラスからコピーされた説明:Hashtable
ハッシュ表にある値のリストを返します。 これらの要素を順次に取り出すには、Enumerationのメソッドを使用します。 値を列挙型しながらハッシュテーブルが構造的に変更された場合、列挙型の結果は未定義です。- オーバーライド:
elements
、クラス:Hashtable<Object,Object>
- 戻り値:
- ハッシュ表にある値のリスト。
- 関連項目:
Enumeration
,Hashtable.keys()
,Hashtable.values()
,Map
-
contains
public boolean contains(Object value)
クラスからコピーされた説明:Hashtable
指定された値にマップされているキーが、ハッシュ表にあるかどうかを判定します。 この操作は、containsKey
メソッドよりも負荷がかかります。このメソッドは、機能の点で
containsValue
(コレクション・フレームワークのMap
インタフェースの一部)と同じです。
-
containsValue
public boolean containsValue(Object value)
クラスからコピーされた説明:Hashtable
- 定義:
containsValue
、インタフェース:Map<Object,Object>
- オーバーライド:
- クラス
Hashtable<Object,Object>
のcontainsValue
- パラメータ:
value
- ハッシュ表にあるかどうかを判定される値- 戻り値:
- このマップが1つまたは複数のキーを指定された値にマッピングしている場合は
true
-
containsKey
public boolean containsKey(Object key)
クラスからコピーされた説明:Hashtable
指定されたオブジェクトが、ハッシュ表のキーかどうかを判定します。- 定義:
containsKey
、インタフェース:Map<Object,Object>
- オーバーライド:
- クラス
Hashtable<Object,Object>
のcontainsKey
- パラメータ:
key
- 使用可能なキー- 戻り値:
equals
メソッドで決められているように、指定されたオブジェクトがこのハッシュ表のキーである場合はtrue
、そうでない場合はfalse
。- 関連項目:
Hashtable.contains(Object)
-
get
public Object get(Object key)
クラスからコピーされた説明:Hashtable
指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnull
を返します。つまり、このメソッドは、
(key.equals(k))
となるキーk
から値v
へのマッピングがこのマップに含まれている場合はv
を返し、それ以外の場合はnull
を返します。 このようなマッピングは1つのみ存在できます。
-
put
public Object put(Object key, Object value)
クラスからコピーされた説明:Hashtable
このハッシュ表で、指定されたkey
を指定されたvalue
にマップします。 キーや値はnull
にすることはできません。valueを取得するには、元のkeyに等しいkeyを指定して
get
メソッドを呼び出します。- 定義:
put
、インタフェース:Map<Object,Object>
- オーバーライド:
put
、クラス:Hashtable<Object,Object>
- パラメータ:
key
- ハッシュ表キーvalue
- 値- 戻り値:
- ハッシュ表の指定されたキーの前の値。それがない場合は
null
- 関連項目:
Object.equals(Object)
,Hashtable.get(Object)
-
remove
public Object remove(Object key)
クラスからコピーされた説明:Hashtable
キー(およびそれに対応する値)をハッシュ表から削除します。 そのキーがハッシュ表にない場合は、何も行いません。
-
putAll
public void putAll(Map<?,?> t)
クラスからコピーされた説明:Hashtable
指定したマップからこのハッシュ表にすべてのマッピングをコピーします。 これにより、ハッシュ表が指定されたマップ内に現在あるキーのすべてに対して持っていたマッピングが置き換えられます。
-
clear
public void clear()
クラスからコピーされた説明:Hashtable
このハッシュ表を消去して、キーがない状態にします。
-
toString
public String toString()
クラスからコピーされた説明:Hashtable
このHashtable
オブジェクトの文字列表現を、ASCII文字,
(カンマとスペース)で区切り、カッコで囲んだ一連のエントリの形式で返します。 各エントリはキー、等符号=
、および関連した要素として描画され、toString
メソッドはキーおよび要素を文字列に変換するために使用されます。
-
keySet
public Set<Object> keySet()
クラスからコピーされた説明:Hashtable
このマップに含まれるキーのSet
ビューを返します。 セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。 セットの反復処理中にマップが変更された場合、反復処理の結果は定義されていません(イテレータ自身のremove
オペレーションを除く)。 セットは要素の削除をサポートします。Iterator.remove
、Set.remove
、removeAll
、retainAll
、およびclear
オペレーションで対応するマッピングをマップから削除します。add
またはaddAll
操作はサポートされていません。
-
values
public Collection<Object> values()
クラスからコピーされた説明:Hashtable
このマップに含まれる値のCollection
ビューを返します。 コレクションはマップと連動しているので、マップに対する変更はコレクションに反映され、またコレクションに対する変更はマップに反映されます。 コレクションの反復処理中にマップが変更された場合、反復処理の結果は定義されません(イテレータ自身のremove
オペレーションを除く)。 コレクションは要素の削除をサポートしており、対応するマッピングをマップから削除できます。削除は、Iterator.remove
、Collection.remove
、removeAll
、retainAll
、およびclear
オペレーションを通して行います。add
またはaddAll
操作はサポートされていません。
-
entrySet
public Set<Map.Entry<Object,Object>> entrySet()
クラスからコピーされた説明:Hashtable
このマップに含まれるマッピングのSet
ビューを返します。 セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。 セットの反復処理中にマップが変更された場合、反復処理の結果は定義されません(イテレータ自身のremove
オペレーション、またはイテレータにより返されるマップ・エントリに対するsetValue
オペレーションを除く)。 セットは要素の削除をサポートしており、対応するマッピングをマップから削除できます。削除は、Iterator.remove
、Set.remove
、removeAll
、retainAll
、およびclear
オペレーションを通して行います。add
またはaddAll
操作はサポートされていません。
-
equals
public boolean equals(Object o)
クラスからコピーされた説明:Hashtable
Mapインタフェースでの定義に従って、指定されたObjectとこのMapを比較して等しいかどうかを判定します。
-
hashCode
public int hashCode()
クラスからコピーされた説明:Hashtable
Mapインタフェースの定義に従って、このMapのハッシュ・コード値を返します。
-
getOrDefault
public Object getOrDefault(Object key, Object defaultValue)
インタフェースからコピーされた説明:Map
指定されたキーがマップされている値を返します。このマップにそのキーのマッピングが含まれていない場合はdefaultValue
を返します。- 定義:
getOrDefault
、インタフェース:Map<Object,Object>
- オーバーライド:
getOrDefault
、クラス:Hashtable<Object,Object>
- パラメータ:
key
- 関連付けられた値が返される鍵defaultValue
- キーのデフォルト・マッピング- 戻り値:
- 指定されたキーがマップされている値。このマップにそのキーのマッピングが含まれていない場合は
defaultValue
-
forEach
public void forEach(BiConsumer<? super Object,? super Object> action)
インタフェースからコピーされた説明:Map
このマップのすべてのエントリの処理が完了するかアクションから例外がスローされるまで、各エントリに対して指定されたアクションを実行します。 実装クラスで指定されない場合は、エントリ・セットの反復の順序でアクションが実行されます(反復順序が指定されている場合)。 アクションによってスローされた例外は、呼出し側に中継されます。
-
replaceAll
public void replaceAll(BiFunction<? super Object,? super Object,?> function)
インタフェースからコピーされた説明:Map
すべてのエントリが処理されるか、または関数が例外をスローするまで、各エントリの値を、そのエントリで指定された関数を呼び出した結果で置換します。 関数によってスローされた例外は、呼出し側に中継されます。- 定義:
replaceAll
、インタフェース:Map<Object,Object>
- オーバーライド:
replaceAll
、クラス:Hashtable<Object,Object>
- パラメータ:
function
- 各エントリに適用する関数
-
putIfAbsent
public Object putIfAbsent(Object key, Object value)
インタフェースからコピーされた説明:Map
指定されたキーがまだ値に関連付けられていない(または、null
にマップされている)場合は、それを指定された値に関連付けてnull
を返します。それ以外の場合は、現在の値を返します。- 定義:
putIfAbsent
、インタフェース:Map<Object,Object>
- オーバーライド:
putIfAbsent
、クラス:Hashtable<Object,Object>
- パラメータ:
key
- 指定された値が関連付けられるキーvalue
- 指定された鍵に関連付けられる値- 戻り値:
- 指定されたキーに関連付けられた以前の値。キーのマッピングがなかった場合は
null
。 (また、実装がnull値をサポートしている場合、戻り値null
は、以前にマップでキーとnull
が関連付けられていたことを示す場合もある。)
-
remove
public boolean remove(Object key, Object value)
インタフェースからコピーされた説明:Map
指定された値に指定されたキーが現在マッピングされている場合にのみ、そのキーのエントリを削除します。
-
replace
public Object replace(Object key, Object value)
インタフェースからコピーされた説明:Map
指定されたキーがなんらかの値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。
-
computeIfAbsent
public Object computeIfAbsent(Object key, Function<? super Object,?> mappingFunction)
クラスからコピーされた説明:Hashtable
指定されたキーがまだ値に関連付けられていない(またはnull
にマップされている)場合、指定されたマッピング関数を使用してその値の計算を試行し、null
でない場合はそれをこのマップに入力します。マッピング関数が
null
を返した場合、マッピングは記録されません。 マッピング関数自体が(unchecked)例外をスローすると、例外は再スローされ、マッピングは記録されません。 もっとも一般的な用途は、次のように初期のマップされた値またはメモ化された結果として機能する新しいオブジェクトを構築することです。map.computeIfAbsent(key, k -> new Value(f(k)));
または、1つのキーで複数の値をサポートする複数値マップ
Map<K,Collection<V>>
を実装することです。map.computeIfAbsent(key, k -> new HashSet<V>()).add(v);
マッピング関数は、計算中にこのマップを変更すべきではありません。
このメソッドは、ベスト・エフォート・ベースで、マッピング関数が計算中にこのマップを変更した場合に
ConcurrentModificationException
をスローします。- 定義:
computeIfAbsent
、インタフェース:Map<Object,Object>
- オーバーライド:
computeIfAbsent
、クラス:Hashtable<Object,Object>
- パラメータ:
key
- 指定された値が関連付けられるキーmappingFunction
- 値をコンピュートするマッピング関数- 戻り値:
- 指定されたキーに関連付けられている現在の(既存の、または計算された)値。計算された値がnullである場合はnull
-
computeIfPresent
public Object computeIfPresent(Object key, BiFunction<? super Object,? super Object,?> remappingFunction)
クラスからコピーされた説明:Hashtable
指定されたキーの値が存在していてnull以外の場合、キーと現在マップされている値から新しいマッピングの計算を試みます。リマッピング関数が
null
を返した場合、マッピングは削除されます。 再マップ関数自体が(unchecked)例外をスローすると、例外が再スローされ、現在のマッピングは変更されません。再マップ関数は、計算中にこのマップを変更すべきではありません。
このメソッドは、リマップ関数が計算中にこのマップを変更した場合、ベスト・エフォート・ベースで
ConcurrentModificationException
をスローします。- 定義:
computeIfPresent
、インタフェース:Map<Object,Object>
- オーバーライド:
computeIfPresent
、クラス:Hashtable<Object,Object>
- パラメータ:
key
- 指定された値が関連付けられるキーremappingFunction
- 値をコンピュートするための再マップ関数- 戻り値:
- 指定されたキーに関連付けられる新しい値。存在しない場合はnull
-
compute
public Object compute(Object key, BiFunction<? super Object,? super Object,?> remappingFunction)
クラスからコピーされた説明:Hashtable
指定されたキーと現在マップされている値に対するマッピングの計算を試みます(現在のマッピングが存在しない場合はnull
)。 たとえば、次のように、値のマッピングにString
msgを作成または追加します。map.compute(key, (k, v) -> (v == null) ? msg : v.concat(msg))
merge()
メソッドは、多くの場合、より単純です。)再マッピング関数が
null
を返した場合、マッピングは削除されます。(最初に欠席した場合は不在のままです)。 再マップ関数自体が(unchecked)例外をスローすると、例外が再スローされ、現在のマッピングは変更されません。再マップ関数は、計算中にこのマップを変更すべきではありません。
このメソッドは、リマップ関数が計算中にこのマップを変更した場合、ベスト・エフォート・ベースで
ConcurrentModificationException
をスローします。
-
merge
public Object merge(Object key, Object value, BiFunction<? super Object,? super Object,?> remappingFunction)
クラスからコピーされた説明:Hashtable
指定されたキーがまだ値と関連付けられていないかnullと関連付けられている場合、指定されたnull以外の値に関連付けます。 それ以外の場合は、指定された再マッピング関数の結果で関連する値を置換し、結果がnull
の場合は削除します。 このメソッドは、1つのキーに対する複数のマップされた値を結合するときに使用できます。 たとえば、次のように、値のマッピングにString msg
を作成または追加します。map.merge(key, msg, String::concat)
リマッピング関数が
null
を返した場合、マッピングは削除されます。 再マップ関数自体が(unchecked)例外をスローすると、例外が再スローされ、現在のマッピングは変更されません。再マップ関数は、計算中にこのマップを変更すべきではありません。
このメソッドは、リマップ関数が計算中にこのマップを変更した場合、ベスト・エフォート・ベースで
ConcurrentModificationException
をスローします。
-
rehash
protected void rehash()
クラスからコピーされた説明:Hashtable
ハッシュ表の容量を増やし、それを内部的に再編成して、エントリを調整してアクセスをより効率的にします。 ハッシュ表にあるキーの数がハッシュ表の容量と負荷係数を超えると、このメソッドが自動的に呼び出されます。
-
-