Question about indexing objects

Reply

Join Date: Nov 2004
Posts: 189
Reputation: George2 is an unknown quantity at this point 
Solved Threads: 0
George2 George2 is offline Offline
Junior Poster

Question about indexing objects

 
0
  #1
Mar 21st, 2005
Hello everyone,


I want to use indexing technology to speed up searching operation of my application. I have found that Java built-in type Hashtable can only have one key for each object. But my requirement is that an object can have multiple keys for an object. For example, the objects may be arranged in the following model,

Object (key1, key2, value)

and the related instances maybe

John ("male", "single", <personal information of John>)
Smith ("male", "married", <personal information of Smith>)

When given key1 (or key2, or key1 and key2 altogether), I want to find out matched objects. For example, when given "male", John and Smith are both matched. When given "single", only John is matched. When given "female" and "single", no records are matched.


Thanks in advance,
George
Reply With Quote Quick reply to this message  
Join Date: Mar 2005
Posts: 53
Reputation: aj.wh.ca is an unknown quantity at this point 
Solved Threads: 1
aj.wh.ca aj.wh.ca is offline Offline
Junior Poster in Training

Re: Question about indexing objects

 
0
  #2
Mar 22nd, 2005
Originally Posted by George2
Hello everyone,


I want to use indexing technology to speed up searching operation of my application. I have found that Java built-in type Hashtable can only have one key for each object. But my requirement is that an object can have multiple keys for an object. For example, the objects may be arranged in the following model,

Object (key1, key2, value)

and the related instances maybe

John ("male", "single", <personal information of John>)
Smith ("male", "married", <personal information of Smith>)

When given key1 (or key2, or key1 and key2 altogether), I want to find out matched objects. For example, when given "male", John and Smith are both matched. When given "single", only John is matched. When given "female" and "single", no records are matched.


Thanks in advance,
George
Yeah Java does not provide MultiKey Map kind of a thing. So you are left with 2 choices. Use some third party class (jakarta collections package has what you are looking for) or implement your own. You can do this by extending the HashMap class or simply defining a custom "equals" function for your "key" class instead of using default String class for key.

cheers,
aj.wh.ca
Reply With Quote Quick reply to this message  
Join Date: Nov 2004
Posts: 189
Reputation: George2 is an unknown quantity at this point 
Solved Threads: 0
George2 George2 is offline Offline
Junior Poster

Re: Question about indexing objects

 
0
  #3
Mar 22nd, 2005
Thanks aj.wh.ca,


Originally Posted by aj.wh.ca
Yeah Java does not provide MultiKey Map kind of a thing. So you are left with 2 choices. Use some third party class (jakarta collections package has what you are looking for) or implement your own. You can do this by extending the HashMap class or simply defining a custom "equals" function for your "key" class instead of using default String class for key.

cheers,
aj.wh.ca
Your ideas are great! I am very interested in the extending HashMap class solution in your reply. Could you provide more information to this solution? Especially how to define "key" class and "equal" function to be flexible to be reusable in other applications.

Another question is, what class of jakarta Collection should I use to meet my requirements? I have studied the document of jakarta Collection but can not find a suitable one. Could you help?


regards,
George
Reply With Quote Quick reply to this message  
Join Date: Mar 2005
Posts: 53
Reputation: aj.wh.ca is an unknown quantity at this point 
Solved Threads: 1
aj.wh.ca aj.wh.ca is offline Offline
Junior Poster in Training

Re: Question about indexing objects

 
0
  #4
Mar 22nd, 2005
Originally Posted by George2
Thanks aj.wh.ca,




Your ideas are great! I am very interested in the extending HashMap class solution in your reply. Could you provide more information to this solution? Especially how to define "key" class and "equal" function to be flexible to be reusable in other applications.

Another question is, what class of jakarta Collection should I use to meet my requirements? I have studied the document of jakarta Collection but can not find a suitable one. Could you help?


regards,
George
Thanks George.

For the 3rd party API consider following link.
http://jakarta.apache.org/commons/co.../MultiMap.html

A simpler solution would be as I said earlier to make a new class.

e.g.

public class MyKey // you may want to extend an existing class say String
{
String[] keys ;
MyKey(String[] k){....}
public boolean equals(MyKey k){//simply compare the keys here as per your conditions}
}

Now in the hashmap for key,value pair insert object of MyKey and the associated value.
This may not be best in performance but this is clean and simple.

regards,
aj.wh.ca
Reply With Quote Quick reply to this message  
Join Date: Nov 2004
Posts: 189
Reputation: George2 is an unknown quantity at this point 
Solved Threads: 0
George2 George2 is offline Offline
Junior Poster

Re: Question about indexing objects

 
0
  #5
Mar 23rd, 2005
Thanks aj.wh.ca,


Originally Posted by aj.wh.ca
Thanks George.

For the 3rd party API consider following link.
http://jakarta.apache.org/commons/co.../MultiMap.html

A simpler solution would be as I said earlier to make a new class.

e.g.

public class MyKey // you may want to extend an existing class say String
{
String[] keys ;
MyKey(String[] k){....}
public boolean equals(MyKey k){//simply compare the keys here as per your conditions}
}

Now in the hashmap for key,value pair insert object of MyKey and the associated value.
This may not be best in performance but this is clean and simple.

regards,
aj.wh.ca
You are too kind and too great!


regards,
George
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:



Similar Threads
Other Threads in the Java Forum
Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC