Re: Something Better than ArrayList
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
--232016332-1442916366-1308693411=:6476
Content-Type: TEXT/PLAIN; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8BIT
On Tue, 21 Jun 2011, Gene Wirchenko wrote:
On Tue, 21 Jun 2011 02:22:46 -0700 (PDT), Paul Cager
<paul.cager@googlemail.com> wrote:
On Jun 21, 6:34?am, Gene Wirchenko <ge...@ocis.net> wrote:
Dear Java'ers:
? ? ?The name of the class is what I need. ?I assume I can find the
docs once I know what it is called.
Others have already pointed you to java.util.Map, which answers your
immediate question. You might also want to have a look at the Java
"Collections" tutorial for more general information:
http://download.oracle.com/javase/tutorial/collections/index.html
I found it rather dry, but did manage to write a proof-of-concept
program for a symbol table. However, I have to check for duplication
before put()ing. Is there a way to combine a Map and a Set to avoid
this?
For the Map
static Map<String,String> SymbolTable=new HashMap<String,String>();
I would like to write something like
static boolean TryToAdd
(
String theKey,
String theData
)
{
return SymbolTable.put(theKey,theData);
}
instead of
static boolean TryToAdd
(
String theKey,
String theData
)
{
if (SymbolTable.containsKey(theKey))
return false;
else
{
SymbolTable.put(theKey,theData);
return true;
}
}
Am I missing something or is this not supported?
You can't do it with a normal Map. You can do it with a ConcurrentMap:
http://download.oracle.com/javase/6/docs/api/java/util/concurrent/ConcurrentMap.html
ConcurrentMap has it because you can't easily build an efficient
threadsafe implementation of putIfAbsent on top of the normal Map
interface. It's a bit of a shame Map doesn't have it, because it's useful
even if you're not dealing with multiple threads!
tom
--
No man ever steps in the same river twice, for it's not the same river
and he's not the same man. -- Heraclitus
--232016332-1442916366-1308693411=:6476--