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