java - Creating a custom multi-key HashMap -


i have been trying create custom hashmap contains 2 keys. user creates object of class 2 parameters k , v. class made of 2 hashmaps: natively extended <integer, v> , key storage <k, integer>. basically, there 2 keys each value: k , integer.

when user wants item, can retrieve both using k key or integer key. so, example, if user uses k system looks in keytable integer such key , uses integer find value v

public class keymap<k, v> extends concurrenthashmap<integer, v> {      private hashmap<k, integer> keytable = new hashmap<k, integer>(10);      @override     public v get(object key) {         if (key instanceof v) {             return super.get(keytable.get(key));         }         return super.get(key);     }  } 

however, have never done parameterization before therefore cannot understand what's problem - getting cannot perform instanceof check against type parameter v. use instead erasure object instead since further generic type information erased @ runtime on line if (key instanceof v) {.

is possible achieve system want?

you can't use parametrized types (k , v) in operation performed @ runtime (e.g instanceof operator). in java parametrization information used @ compile-time , removed compiled code. removal referred type erasure. 1

i suggest don't rely on type of key determine hashmap in , instead see if key valid key first hashmap, , if not, try second. keep in mind k of type integer, meaning both key types identical.


Comments

Popular posts from this blog

c# - DetailsView in ASP.Net - How to add another column on the side/add a control in each row? -

javascript - firefox memory leak -

Trying to import CSV file to a SQL Server database using asp.net and c# - can't find what I'm missing -