Hashtable.Add(Object, Object) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したキーおよび値を持つ要素を Hashtable に追加します。
public:
virtual void Add(System::Object ^ key, System::Object ^ value);
public virtual void Add (object key, object value);
public virtual void Add (object key, object? value);
abstract member Add : obj * obj -> unit
override this.Add : obj * obj -> unit
Public Overridable Sub Add (key As Object, value As Object)
パラメーター
- key
- Object
追加する要素のキー。
- value
- Object
追加する要素の値。 値として null
を指定できます。
実装
例外
key
が null
です。
同じキーを持つ要素が、Hashtable に既に存在します。
例
次の例は、 に要素を追加する方法を Hashtable示しています。
using namespace System;
using namespace System::Collections;
void PrintKeysAndValues( Hashtable^ myHT );
int main()
{
// Creates and initializes a new Hashtable.
Hashtable^ myHT = gcnew Hashtable;
myHT->Add( "one", "The" );
myHT->Add( "two", "quick" );
myHT->Add( "three", "brown" );
myHT->Add( "four", "fox" );
// Displays the Hashtable.
Console::WriteLine( "The Hashtable contains the following:" );
PrintKeysAndValues( myHT );
}
void PrintKeysAndValues( Hashtable^ myHT )
{
Console::WriteLine( "\t-KEY-\t-VALUE-" );
IEnumerator^ myEnum = myHT->GetEnumerator();
while ( myEnum->MoveNext() )
{
DictionaryEntry de = *safe_cast<DictionaryEntry ^>(myEnum->Current);
Console::WriteLine( "\t{0}:\t{1}", de.Key, de.Value );
}
Console::WriteLine();
}
/*
This code produces the following output.
The Hashtable contains the following:
-KEY- -VALUE-
two: quick
three: brown
four: fox
one: The
*/
using System;
using System.Collections;
public class SamplesHashtable
{
public static void Main()
{
// Creates and initializes a new Hashtable.
var myHT = new Hashtable();
myHT.Add("one", "The");
myHT.Add("two", "quick");
myHT.Add("three", "brown");
myHT.Add("four", "fox");
// Displays the Hashtable.
Console.WriteLine("The Hashtable contains the following:");
PrintKeysAndValues(myHT);
}
public static void PrintKeysAndValues( Hashtable myHT )
{
Console.WriteLine("\t-KEY-\t-VALUE-");
foreach (DictionaryEntry de in myHT)
Console.WriteLine($"\t{de.Key}:\t{de.Value}");
Console.WriteLine();
}
}
/*
This code produces the following output.
The Hashtable contains the following:
-KEY- -VALUE-
two: quick
three: brown
four: fox
one: The
*/
Imports System.Collections
Public Class SamplesHashtable
Public Shared Sub Main()
' Creates and initializes a new Hashtable.
Dim myHT As New Hashtable()
myHT.Add("one", "The")
myHT.Add("two", "quick")
myHT.Add("three", "brown")
myHT.Add("four", "fox")
' Displays the Hashtable.
Console.WriteLine("The Hashtable contains the following:")
PrintKeysAndValues(myHT)
End Sub
Public Shared Sub PrintKeysAndValues(myHT As Hashtable)
Console.WriteLine(vbTab + "-KEY-" + vbTab + "-VALUE-")
For Each de As DictionaryEntry In myHT
Console.WriteLine(vbTab + "{0}:" + vbTab + "{1}", de.Key, de.Value)
Next
Console.WriteLine()
End Sub
End Class
' This code produces the following output.
'
' The Hashtable contains the following:
' -KEY- -VALUE-
' two: quick
' one: The
' three: brown
' four: fox
'
注釈
キーを に null
することはできませんが、値は にできます。
状態とハッシュ コード値の間に相関関係がないオブジェクトは、通常、キーとして使用しないでください。 たとえば、String オブジェクトは、キーとして使用する StringBuilder オブジェクトよりも優れています。
プロパティを Item[] 使用して、 に存在しないキーの値を設定することで、新しい要素を Hashtable追加することもできます (例: myCollection["myNonexistentKey"] = myValue
)。 ただし、指定したキーが に既に Hashtable存在する場合は、 プロパティを Item[] 設定すると古い値が上書きされます。 これに対し、 メソッドは既存の Add 要素を変更しません。
が の容量より小さい場合 Count 、 Hashtableこのメソッドは操作です O(1)
。 新しい要素に対応するために容量を増やす必要がある場合、このメソッドは 操作になります O(n)
。ここで n
、 は Countです。
適用対象
こちらもご覧ください
.NET