Solved

Need a container to hold a unique list of strings with a fast lookup

Posted on 2004-07-31
5
221 Views
Last Modified: 2012-05-05
Hi,

I need to maintain a list of unique strings. What container should I use? I need the following requirements:

1) check to see if the string exists in the container (note that it could be a different String object with the same text)
2) must be fast. I mean I don't want the container to be looping through each element doing an equals() call for each element

So I'm thinking it should be some kind of container where the Strings are added in sorted order. This way any kind of equals call can use a divide and conquer approach to testing or something similar.

Are there any containers like this? Whether inside the JDK or freely available somewhere?

Or does anyone have any suggestions the best way to build one?
0
Comment
Question by:ycomp
  • 3
  • 2
5 Comments
 
LVL 7

Accepted Solution

by:
lhankins earned 500 total points
ID: 11686237
You can do this with one of the java.util.Set implementations (either HashSet or TreeSet).

Both implementations are fast with respect to lookup time.   If you want to maintain the items in sorted order (e.g. you want to print them out in sorted order), then use the TreeSet.   Otherwise, use the HashSet.

Example usage :

      Set items = new HashSet();

      items.add("foo");
      items.add("bar");
      items.add("wubba");
      // etc...
     
      if (items.contains("somestring"))
      {
         // item is in the set...
      }


0
 
LVL 7

Expert Comment

by:lhankins
ID: 11686241
BTW - all of the classes listed above are part of the standard JDK (they are in the java.util package).
0
 

Author Comment

by:ycomp
ID: 11686246
ah, so HashSet does use equals() or something to test? I tried it in my code but it didn't work. I guess I was calling it wrong.
0
 

Author Comment

by:ycomp
ID: 11686247
I forgot about hashcodes. It's been a long day.
0
 

Author Comment

by:ycomp
ID: 11686256
yeah was my faulty code that caused the problem
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Maven Project: Hibernate Dependencies Conflict 10 39
ejb entity bean example issue 2 16
Java basic valueOf question 1 29
Java Eclipse Loop 3 21
After being asked a question last year, I went into one of my moods where I did some research and code just for the fun and learning of it all.  Subsequently, from this journey, I put together this article on "Range Searching Using Visual Basic.NET …
Introduction This article is the second of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers the basic installation and configuration of the test automation tools used by…
Viewers learn how to read error messages and identify possible mistakes that could cause hours of frustration. Coding is as much about debugging your code as it is about writing it. Define Error Message: Line Numbers: Type of Error: Break Down…
This tutorial will introduce the viewer to VisualVM for the Java platform application. This video explains an example program and covers the Overview, Monitor, and Heap Dump tabs.

839 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question