紛争を解決するためのジッパーの方法。ハッシュは、その値が0キー配列形式リンクされたリストに2つの場所に格納され、0になった後、競合解決の練習のジッパー方法はKEY3とKEY14として、リスト中の同一のハッシュ値の全ての鍵ようになっています。あなたは私の言葉を理解できない場合は、次の例を見て、理解して印刷情報を見てください。何ジッパー方法と、そのリストです。
クラスHashNode { パブリック$キー。 公共$値; 公共$ NEXTNODE。 パブリック関数__construct($キー、$値、$ NEXTNODE = NULL){ の$ this - >キー= $キー。 の$ this - >値= $値; の$ this - > NEXTNODE = $ NEXTNODE。 } } Hashtableクラス{ プライベートの$ arrが。 プライベート$サイズ= 10; パブリック関数の__construct(){ の$ this - > ARR =新しいSplFixedArray(の$ this - >サイズ); } パブリック関数SimpleHash($キー){ $ ascTotal = 0。 $ STRLEN = strlen関数($キー)。 以下のために($ iが= 0; $ I <$ strlenを、$ I ++){ $ ascTotal + = ORD($キー[$ i])と; } $ ascTotal%の$ this - >サイズを返します。 } //使用拉链法 //将最新的放在前面 パブリック関数セット($キー、$ヴァル){ $ハッシュ=の$ this - > SimpleHash($キー)。 (ISSET(の$ this - > ARR [$ハッシュ])){もし $ newNode =新しいHashNode($キー、$ヴァル、の$ this - > ARR [$ハッシュ])。 }他{ $ newNode =新しいHashNode($キー、$ヴァル、NULL); } の$ this - > ARR [$ハッシュ] = $ newNode。 trueを返します。 } パブリック関数のget($キー){ $ハッシュ=の$ this - > SimpleHash($キー)。 $現在の=の$ this - > ARR [$ハッシュ]; (!空(現在$)){しばらく するif($の電流>キー== $キー){ $の電流>の値を返します。 } = $の電流> NEXTNODE現在の$。 } NULLを返します。 } パブリック関数GETLIST(){ リターンの$ this - > arrが。 } } $ newArr =新しいハッシュテーブル(); 用($ I = 0; $ I <25; $ I ++){ $キー= 'キー' $ I。 $ newArr->セット($キー、$ I); } $ ARR = $ newArr-> GETLIST(); しますprint_r($ arrが)。