In JavaScript world, almost everything is a Dictionary.
If you simply need a dictionary, just use a JavaScriptObject.
Here is a example:
public final native void setValue(String key, String value) /*-{
this[key] = value;
}-*/;
private native static JavaScriptObject _createInstance() /*-{
var obj = new Object
return obj
}-*/;
I think the _createInstance isn't required, but I don't tested.