Re: Cleanup patch: Change from Vector/Hashtable to ArrayList/HashMap - Mailing list pgsql-jdbc

From Robin Rosenberg
Subject Re: Cleanup patch: Change from Vector/Hashtable to ArrayList/HashMap
Date
Msg-id 4FA6DC82.2040505@dewire.com
Whole thread Raw
In response to Re: Cleanup patch: Change from Vector/Hashtable to ArrayList/HashMap  (dmp <danap@ttc-cmc.net>)
List pgsql-jdbc
dmp skrev 2012-05-06 20.03:
> Mikko Tiihonen wrote:
>  > Hi,
>  >
>  > Here are two small cleanup patches.
>  >
>  > First one replaces all Vector references with List (usage) and ArrayList
>  > (creation).
>  > Second replaces all Hashtable references with Map (usage) and HashMap
>  > (creation).
>  >
>  > Reasons:
>  > * Theoretically faster since the ArrayList/HashMap are not synchronized
>  > * Using interfaces makes changing of List/Map implementations easier at
>  > later time
>  > * Vector/Hashtable were deprecated already in Java 1.2
>
> My JDK 6 documentation gives no indication that either Vector or Hashtable
> as being deprecated. Rather them being retrofitted into the Collectionss
> Framework at 1.2. The main difference being that as you said they are
> synchronized, which a developer may wish to have for that type of data
> structure.

They are not deprecated in the "this might go away" sense, but it was discovered
that having self-synchronized collection classes rarely is enough to provide
thread safety, rather synchronization usually has to be handled in a larger
scope than the individual method call. Therefore, if you think Vector makes
your code thread-safe, you need to think again. Even if works it usually a
very expensive way of accomplishing the goal.

-- robin

pgsql-jdbc by date:

Previous
From: henk de wit
Date:
Subject: Re: Cleanup patch: Change from Vector/Hashtable to ArrayList/HashMap
Next
From: Robin Rosenberg
Date:
Subject: Re: Cleanup patch: Change from Vector/Hashtable to ArrayList/HashMap