您好,欢迎来到21游戏网。
搜索
您的当前位置:首页php如何实现hashmap

php如何实现hashmap

来源:21游戏网


php实现hashmap的方法:使用【construct()】构造函数实现,代码为【Class HashMap{var $H_table;public function __construct(){$this->H_table = a}】。

php实现hashmap的方法:

主要方法参照JAVA的HASHMAP实现的

Class HashMap{
 var $H_table;
 
 public function __construct() {
 $this->H_table = array ();
 }
 
 public function put($key, $value) {
 if (!array_key_exists($key, $this->H_table)) {
 $this->H_table[$key] = $value;
 return null;
 } else {
 $tempValue = $this->H_table[$key];
 $this->H_table[$key] = $value;
 return $tempValue;
 }
 }
 
 
 public function get($key) {
 if (array_key_exists($key, $this->H_table))
 return $this->H_table[$key];
 else
 return null;
 }
 
 
 public function remove($key) {
 $temp_table = array ();
 if (array_key_exists($key, $this->H_table)) {
 $tempValue = $this->H_table[$key];
 while ($curValue = current($this->H_table)) {
 if (!(key($this->H_table) == $key))
 $temp_table[key($this->H_table)] = $curValue;
 
 next($this->H_table);
 }
 $this->H_table = null;
 $this->H_table = $temp_table;
 return $tempValue;
 } else
 return null;
 }
 
 
 public function keys(){
 return array_keys($this->H_table);
 }
 
 public function values(){
 return array_values($this->H_table);
 }
 
 
 public function putAll($map){
 if(!$map->isEmpty()&& $map->size()>0){
 $keys = $map->keys();
 foreach($keys as $key){
 $this->put($key,$map->get($key));
 }
 }
 }
 
 
 public function removeAll() {
 $this->H_table = null;
 $this->H_table = array ();
 }
 
 public function containsValue($value) {
 while ($curValue = current($this->H_table)) {
 if ($curValue == $value) {
 return true;
 }
 next($this->H_table);
 }
 return false;
 }
 
 public function containsKey($key) {
 if (array_key_exists($key, $this->H_table)) {
 return true;
 } else {
 return false;
 }
 }
 
 public function size() {
 return count($this->H_table);
 }
 
 
 
 public function isEmpty() {
 return (count($this->H_table) == 0);
 }
 
 public function toString() {
 print_r($this->H_table);
 }
}

想了解更多编程学习,敬请关注php培训栏目!

Copyright © 2019- l2e.cn 版权所有

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务