begin process at 2012 02 14 12:39:21
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaire

 > IMPLEMENTATION DE HASHTABLE

IMPLEMENTATION DE HASHTABLE


 Information sur la source

Note :
Aucune note
Catégorie :Formulaire Classé sous :Hash, HashTable, javascript Hashtable Niveau :Expert Date de création :27/02/2010 Date de mise à jour :01/03/2010 16:07:14 Vu :2 113

Auteur : ousous

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

c'est l'implementation de java.util.HashTable en javascript
pour ceux qui veulent la développé plus a vous de le faire je reserve le reste des methodes pour moi :)p
dabord il faut faire une extentation de la class Object par defaut de javascript puis implementé la class HashTable
a bientot

Source

  • function HashTable(){
  • }
  • HashTable.prototype={
  • put: function(key, value) {
  • return this[key] = value;
  • },
  • get: function(key) {
  • if (this[key] !== Object.prototype[key])
  • return this[key];
  • },
  • remove: function(key) {
  • delete this[key];
  • },
  • keys:function(){
  • var a=[];
  • for(var b in this){
  • if(this.hasOwnProperty(b))
  • a.push(b);
  • }
  • return a;
  • },
  • values: function() {
  • var a=[];
  • for(var b in this){
  • if(this.hasOwnProperty(b)) a.push(this[b])
  • }
  • return a;
  • }
  • }
  • /** Utilisation */
  • s=new HashTable();
  • s.put("key1","value1");
  • s.put("key2","value2");
  • s.put("key3","value3");
  • alert(s.get("key2"));
  • alert(s.keys());
  • alert(s.values());
  • s.remove("key2");
  • alert(s.keys());
  • alert(s.values());
function HashTable(){

}
HashTable.prototype={
    put: function(key, value) {
      return this[key] = value;
    },
    get: function(key) {
      if (this[key] !== Object.prototype[key])
      return this[key];
    },
    remove: function(key) {
      delete this[key];
    },
    keys:function(){
	var a=[];
    	for(var b in this){
        	if(this.hasOwnProperty(b))
            	a.push(b);
    	}
    	return a;
     },
    values: function() {
	var a=[];
	for(var b in this){
		if(this.hasOwnProperty(b)) a.push(this[b])
	}
	return a;		
    }
}
/** Utilisation */
s=new HashTable();
s.put("key1","value1");
s.put("key2","value2");
s.put("key3","value3");
alert(s.get("key2"));
alert(s.keys());
alert(s.values());
s.remove("key2");
alert(s.keys());
alert(s.values());



 Historique

01 mars 2010 16:07:09 :
plus fun et propre
01 mars 2010 16:07:14 :
plus fun et propre

 Sources du même auteur

IMPLEMENTATION DE RANDOM PERSONNALISÉ
JAVASCRIPT.UTIL.ITERATOR

 Sources de la même categorie

Source avec Zip Source avec une capture BOITE DE DIALOGUE MODALE DE SÉLECTION D'UNE LISTE D'ICONES par JJDai
Source avec Zip Source avec une capture RÉSOLUTION D'UN SYSTÈME D'ÉQUATIONS LINÉAIRES À N INCONNUES par william voirol
Source avec Zip Source avec une capture PLUGIN JQUERY LISTE MODIFIABLE (COMBO) AUTOCOMPLÉTÉE par medkarim
GESTION DE NUMÉRO DE TÉLÉPHONE SIMPLE DANS FIREFOX7 par rotomtom
Source avec Zip Source avec une capture RECOMMANDER CETTE PAGE AVEC MAILTO, ACCENT ET RETOUR LIGNE D... par weabow

Commentaires et avis

Commentaire de Kimjoa le 01/03/2010 14:55:15

salut, je me serais pris autrement. Au lieu de cloner l'objet et de le référencer par this.object, j'aurais étendue à l'instance toute les variables de l'objet. Ensuite la fonction hasOwnProperty permet de savoir si une propriété est définit dans le prototype ou dans l'insatnce.

Par exemple pour la fonction keys sa donnerait

keys:function(){
    var a=[];
    for(var b in this){
        if(this.hasOwnProperty(b))
            a.push(b);
    }
    return a;
}

Commentaire de ousous le 01/03/2010 15:44:47

j'ai pensé a ta solution avant que tu la propose mais le pb c'est qil te retourne toutes les méthodes de ta classe donc c pas bon ce que j'ai fait retourne que ce quon vient d'ajouter dans le hashtable

Commentaire de Kimjoa le 01/03/2010 17:39:20

justement, grâce à la méthode native hasOwnProperty qui permet de savoir si une propriété est définit directement dans l'instance et non dans le prototype , je crois pas qu'il y ait des bug sur cette fonction, mais à tester quand même sous ie6.

par exemple une base pourrait ressembler à ca :

        function Hash(obj){
    for(var i in obj)
    this[i] = obj[i];
}

Hash.prototype.each = function(fn, context){
    context = context || this;
    for(var i in this){
    if(this.hasOwnProperty(i))
    fn.call(context, this[i], i);
}
}
    

var jo = new Hash({
    test1 : 'ok1',
    test2 : 'ok2'
});

jo.each(function(value, index){
    alert(index +' à comme valeur ' + value);
});

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

HashTable [ par GanJ ] Bonjour,J'aurais besoin, pour me simplifier la vie , d'utiliser une table de hashage.Il y en aurait-il un qui serait me dire si cet objet existe ou s' Evénement sur 'window.location.hash' modifié ? [ par billou_13 ] Bonjour à tous,Je poste cette question ici car je n'arrive pas à trouver mon bonheur sur le net.J'aurais voulu savoir s'il est possible d'exécuter du probleme de hash.location avec suivant precedant du navigateur [ par dpk1 ] bonjour a tous, je suis débutant et je ne comprend pas une fonction. j'ai besoin de vos lumières afin d'améliorer mon site. voila j'ai : hashencours


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales