Re: single-value map?
"Paul" <paul_leil@hotmail.com> writes:
I need to store info where all elements are of the form
ID (an int) --> (ObjType1, ObjType2)
The question is, is there a way of storing O1 and O2 in some kind of an
entrySet instead of using a full-blown map?
That is, instead of doing
Map<Integer, Map<ObjType1, ObjType2>> myMap = new HashMap<Integer,
Map<ObjType1, ObjType2>>();
Ok, a full Map object is *not* the simplest way to store two objects.
Instead you can try something like
public class Pair<F,S> {
public final F first;
public final S second;
public Pair(F first, S second) {
this.first = first;
this.second = second;
}
}
Then your map would be
Map<Integer,Pair<ObjType1,ObjType2>> myMap =
new HashMap<Integer,Pair<ObjType1,ObjType2>>();
Map.put(42, new Pair(value1,value2));
If those ARE the only two options I have, which one is faster, casting
every time, or storing each elements pair as a separate Map?
Using a Map to store *two* elements is overkill, by a lot.
Using a Map.Entry outside of a map is just bad reuse, using a class
for something it was never ment for. Make the class that suites your
needs, and make it do what you want.
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'