commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From stefano masiero <stefano.masi...@gmail.com>
Subject Re: [dbutils] CaseInsensitiveHashMap in BasicRowProcessor should extend LinkedHashMap
Date Sun, 18 Dec 2011 20:37:05 GMT
Hi Hasan,
I don't have a generic order for keys, my order is the same of the fields
in select list:
select <col1>, <col2>, ..., <coln> from ...
when the resultset of this query is mapped, values in the map are inserted
in this order <col1>, <col2>, ..., <coln>.
I'd like that map.keySet().iterator() let me iterate over values in that
order, i.e. insertion-order.
This is a custom order but I have to parse the query to get it. I think it
should be the order that a client would expect.
>From the LinkedHashMap javadoc:
"This implementation spares its clients from the unspecified, generally
chaotic ordering provided by
HashMap<http://docs.oracle.com/javase/6/docs/api/java/util/HashMap.html>
 (and Hashtable<http://docs.oracle.com/javase/6/docs/api/java/util/Hashtable.html>),
without incurring the increased cost associated with
TreeMap<http://docs.oracle.com/javase/6/docs/api/java/util/TreeMap.html>
."



On Sun, Dec 18, 2011 at 7:46 PM, Hasan Diwan <hasan.diwan@gmail.com> wrote:

> On 18 December 2011 10:31, aris2world <aris2world@gmail.com> wrote:
> > I've a question about CaseInsensitiveHashMap in BasicRowProcessor: it
> > extends HashMap but if it will extend LinkedHashMap I think the resulting
> > Map could seem more consistent with the executed query to a client
> > perspective.
> > I mean: when the method toMap puts the columns of the resultset into the
> > map, the insertion order is the same of the columns in the select list of
> > the executed query. It will be useful to me to extract values in the same
> > order when I'm iterating over the key set of the returned map. This is
> > accomplished in a simply way with a LinkedHashMap. What do you think
> about
> > it?
>
> I think you should be able to (untested):
> HashMap<String, Object> map = basicRowProcessorInstance.toMap();
> List <String> keys = new ArrayList(map.keySet());
> Collections.sort(keys);
> now keys will be sorted alphabetically by String's default Comparator,
> but you can also specify a custom one.
>
> --
> Sent from my mobile device
> Envoyait de mon portable
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message