Skip site navigation (1) Skip section navigation (2)

Re: Cleanup patch: Change from Vector/Hashtable to ArrayList/HashMap

From: Robin Rosenberg <robin(dot)rosenberg(at)dewire(dot)com>
To: dmp <danap(at)ttc-cmc(dot)net>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Cleanup patch: Change from Vector/Hashtable to ArrayList/HashMap
Date: 2012-05-06 19:59:29
Message-ID: 4FA6D821.5050701@dewire.com (view raw or flat)
Thread:
Lists: 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

In response to

Responses

pgsql-jdbc by date

Next:From: Robin RosenbergDate: 2012-05-06 20:18:10
Subject: Re: Cleanup patch: Change from Vector/Hashtable to ArrayList/HashMap
Previous:From: henk de witDate: 2012-05-06 19:22:48
Subject: Re: Cleanup patch: Change from Vector/Hashtable to ArrayList/HashMap

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group