Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Java Help > Re: A java prog...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 11 of 12 Topic 16007 of 16204
Post > Topic >>

Re: A java program (MyHashTable)

by GArlington <garlington@[EMAIL PROTECTED] > Apr 24, 2008 at 05:46 AM

On Apr 22, 3:32 pm, Sagarika <SonamSenSha...@[EMAIL PROTECTED]
> wrote:
> On Apr 22, 7:17 pm, Sagarika <SonamSenSha...@[EMAIL PROTECTED]
> wrote:
>
>
>
> > I am new in this group.So,if somehow my way of posting goes wrong
> > please pardon.
>
> > I made a program as MyHashTable described below.All I want to print
> > all the elements in the hashtable as a string.What should I do? Can
> > you help me?
>
> > im****t java.io.*;
> > im****t java.util.*;
> > im****t java.util.Comparator;
>
> > interface HashComparator{
> >           boolean isComparable(Object key);
> >           boolean isEqualTo(Object Key1,Object Key2);
> >           int hashValue(Object key);
> >           }
>
> > interface HashTable {
> >     int size();
> >     boolean present(int p);
> >     boolean isEmpty(int e);
> >     Object key(int k);
> >     Object element(int e);
> >     Object findElement(Object key);
> >     void insert(Object key,Object element);
> >     Object removeElement(Object key);
> >    }
>
> > class InvalidKeyException extends RuntimeException {
> >     InvalidKeyException(String message) {
> >          super(message);
> >     }
>
> > }
>
> > class HashTableFullException extends RuntimeException {
> >     HashTableFullException(String message) {
> >          super(message);
> >     }
>
> > }
>
> >    class data {
> >         Object key,element;
>
> >         data() {
> >         key =3D null;
> >         element =3D null;
> >         }
>
> >         data(Object k,Object e){
> >         key =3D k;
> >         element =3D e;
> >         }
>
> >         public Object key(){ return key;}
> >         public Object element(){ return element; }
> >         public void setKey(Object k) { key =3D k; }
> >         public void setElement(Object e) { element =3D e; }
> >      }
>
> >      public class MyHashTable implements HashTable {
>
> >         static data PRESENT =3D new data();
>
> >         int m,n;
>
> >         data[] bucket;
> >         Object NON_EXISTENT_KEY;
>
> >         private static HashComparator C;
>
> >         public MyHashTable(HashComparator C1){
> >                n =3D 0;
> >                C =3D C1;
> >                m =3D 200;
> >                bucket =3D new data[m];
> >                }
>
> >         public MyHashTable(HashComparator C1,int i){
> >               n =3D 0;
> >               C =3D C1;
> >               m =3D i;
> >               bucket =3D new data[m];
> >               }
>
> >          void examine(Object Key){
> >              try {
> >              if(!C.isComparable(Key)) throw new
> > InvalidKeyException("The key is not valid");
> >              }
> >              catch(NullPointerException n) { }
> >             }
>
> >         public boolean present(int x){ return (bucket[x] =3D=3D
> > PRESENT); }
>
> >         public boolean isEmpty(int y){ return (bucket[y] =3D=3D null);
}=

>
> >         public Object key(int k) { return bucket[k].key();}
>
> >         public Object element(int e) {  return bucket[e].element();}
>
> >         public int size() { return n; }
>
> >         int findData(Object key) throws InvalidKeyException {
> >             examine(key);
> >             int x =3D C.hashValue(key) % m;
> >             int y =3D x;
> >             do {
> >                if(isEmpty(x)) return -1;
> >                if(present(x)) x =3D (x+1) % m;
> >                else if (C.isEqualTo(key(x),key))
> >                     return x;
> >                else
> >                    x =3D (x+1) % m;
> >                }while(x !=3D y);
> >               return -1;
> >            }
>
> >         public Object findElement (Object key) throws
> > InvalidKeyException {
> >                int x =3D findData(key);
> >                if(x < 0) return this.NON_EXISTENT_KEY;
> >                return element(x);
> >                }
>
> >         public void insert(Object key,Object element) throws
> > InvalidKeyException {
> >                examine(key);
> >                try {
> >                int x =3D C.hashValue(key) % m;
> >                int y =3D x;
> >                do {
> >                   if(isEmpty(x) || present(x)) {
> >                     bucket[x] =3D new data(key,element);
> >                     return;
> >                     }
> >                  x =3D (x+1) % m;
> >                  }while(x !=3D y);
> >               throw new HashTableFullException("Hash table is full.
> > ");
> >               }
> >                catch(NullPointerException n) { }
> >                n++;
> >              }
>
> >           public Object remove(Object key) throws InvalidKeyException{
> >                  int x =3D findData(key);
> >                  if(x<0) return this.NON_EXISTENT_KEY;
> >                  Object O =3D element(x);
> >                  bucket[x] =3D PRESENT;
> >                  n--;
> >                  return O;
> >                  }
>
> >           public static void main(String[] args) {
> >                  MyHashTable T =3D new MyHashTable(C);
> >                  try{
> >                  T.insert(new Integer(1),new Integer(29));
> > T.insert(new Integer(2),new Integer(45));
> >                  T.insert(new Integer(3),new Integer(37));
> > T.insert(new Integer(4),new Integer(99));
> >                  T.insert(new Integer(5),new Integer(58));
> > T.insert(new Integer(6),new Integer(76));
> >                  T.remove(new Integer(2));
> >                  System.out.println(); System.out.println();
> >                  System.out.println("The table size is " + T.size());
> >                  System.out.println();
> >                  }
> >                   catch(InvalidKeyException e) {
> >                         System.out.println("The key is Invalid");
> >                         System.out.println(e.getMessage());
> >                     }
> >                   }
>
> > }
>
> I have implemented toString function but all that it prints all the
> elements present in the hash table to be null why is it so?
> im****t java.io.*;
> im****t java.util.*;
> im****t java.util.Comparator;
>
> interface HashComparator{
>           boolean isComparable(Object key);
>           boolean isEqualTo(Object Key1,Object Key2);
>           int hashValue(Object key);
>           }
>
> interface HashTable {
>     int size();
>     boolean present(int p);
>     boolean isEmpty(int e);
>     Object key(int k);
>     Object element(int e);
>     Object findElement(Object key);
>     void insert(Object key,Object element);
>     Object remove(Object key);
>    }
>
> class InvalidKeyException extends RuntimeException {
>     InvalidKeyException(String message) {
>          super(message);
>     }
>
> }
>
> class HashTableFullException extends RuntimeException {
>     HashTableFullException(String message) {
>          super(message);
>     }
>
> }
>
>    class data {
>         Object key,element;
>
>         data() {
>         key =3D null;
>         element =3D null;
>         }
>
>         data(Object k,Object e){
>         key =3D k;
>         element =3D e;
>         }
>
>         public Object key(){ return key;}
>         public Object element(){ return element; }
>         public void setKey(Object k) { key =3D k; }
>         public void setElement(Object e) { element =3D e; }
>      }
>
>      public class MyHashTable implements HashTable {
>
>         static data PRESENT =3D new data();
>
>         int m,n;
>
>         data[] bucket;
>         Object NON_EXISTENT_KEY;
>
>         private static HashComparator C;
>
>         public MyHashTable(HashComparator C1){
>                n =3D 0;
>                C =3D C1;
>                m =3D 200;
>                bucket =3D new data[m];
>                }
>
>         public MyHashTable(HashComparator C1,int i){
>               n =3D 0;
>               C =3D C1;
>               m =3D i;
>               bucket =3D new data[m];
>               }
>
>          void examine(Object Key){
>              try {
>              if(!C.isComparable(Key)) throw new
> InvalidKeyException("The key is not valid");
>              }
>              catch(NullPointerException n) { }
>             }
>
>         public boolean present(int x){ return (bucket[x] =3D=3D
> PRESENT); }
>
>         public boolean isEmpty(int y){ return (bucket[y] =3D=3D null); }
>
>         public Object key(int k) { return bucket[k].key();}
>
>         public Object element(int e) {  return bucket[e].element();}
>
>         public int size() { return n; }
>
>         int findData(Object key) throws InvalidKeyException {
>             examine(key);
>             int x =3D C.hashValue(key) % m;
>             int y =3D x;
>             do {
>                if(isEmpty(x)) return -1;
>                if(present(x)) x =3D (x+1) % m;
>                else if (C.isEqualTo(key(x),key))
>                     return x;
>                else
>                    x =3D (x+1) % m;
>                }while(x !=3D y);
>               return -1;
>            }
>
>         public Object findElement (Object key) throws
> InvalidKeyException {
>                int x =3D findData(key);
>                if(x < 0) return this.NON_EXISTENT_KEY;
>                return element(x);
>                }
>
>         public void insert(Object key,Object element) throws
> InvalidKeyException {
>                examine(key);
>                try {
>                int x =3D C.hashValue(key) % m;
>                int y =3D x;
>                do {
>                   if(isEmpty(x) || present(x)) {
>                     bucket[x] =3D new data(key,element);
>                     return;
>                     }
>                  x =3D (x+1) % m;
>                  }while(x !=3D y);
>               throw new HashTableFullException("Hash table is full.
> ");
>               }
>                catch(NullPointerException n) { }
>                n++;
>              }
>
>           public Object remove(Object key) throws InvalidKeyException{
>                  int x =3D findData(key);
>                  if(x < 0) return this.NON_EXISTENT_KEY;
>                  Object O =3D element(x);
>                  bucket[x] =3D PRESENT;
>                  n--;
>                  return O;
>               }
>
>         public  String ConverttoString() {
>         StringBuffer s =3D new StringBuffer();
>         int i =3D 0;
>         int elements =3D this.size();
>         while(elements !=3D 0) {
>             s.append(" " + this.bucket[i++]);
>             elements -- ;
>         }
>         return s.toString();
>     }
>
>           public static void main(String[] args) {
>                  MyHashTable T =3D new MyHashTable(C);
>                  try{
>                  T.insert(new Integer(1),new Integer(29));
> T.insert(new Integer(2),new Integer(45));
>                  T.insert(new Integer(3),new Integer(37));
> T.insert(new Integer(4),new...
>
> read more =BB

In any case, did you try to debug your code? It compiles, but when it
runs the code fails to add ANY elements to your MyHashTable =3D> nulls
when you print it...
 




 12 Posts in Topic:
A java program (MyHashTable)
Sagarika <SonamSenShar  2008-04-22 07:17:30 
Re: A java program (MyHashTable)
Sagarika <SonamSenShar  2008-04-22 07:32:30 
Re: A java program (MyHashTable)
GArlington <garlington  2008-04-22 08:30:08 
Re: A java program (MyHashTable)
Andrew Marcus <mainhoo  2008-04-22 09:02:26 
Re: A java program (MyHashTable)
Roedy Green <see_websi  2008-04-23 00:38:00 
Re: A java program (MyHashTable)
Lew <lew@[EMAIL PROTEC  2008-04-22 22:08:05 
Re: A java program (MyHashTable)
Roedy Green <see_websi  2008-04-22 17:40:25 
Re: A java program (MyHashTable)
"elhmbre@[EMAIL PROT  2008-04-22 18:06:18 
Re: A java program (MyHashTable)
Lew <lew@[EMAIL PROTEC  2008-04-22 22:07:59 
Re: A java program (MyHashTable)
GArlington <garlington  2008-04-23 06:06:41 
Re: A java program (MyHashTable)
GArlington <garlington  2008-04-24 05:46:35 
Re: A java program (MyHashTable)
Lew <lew@[EMAIL PROTEC  2008-04-24 19:42:22 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Wed Jul 9 6:50:04 CDT 2008.