Skip to content

Instantly share code, notes, and snippets.

@kohsuke
Created November 16, 2011 22:01
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kohsuke/1371596 to your computer and use it in GitHub Desktop.
Save kohsuke/1371596 to your computer and use it in GitHub Desktop.
m[k] is O(N) not O(1) if m is Java map
public class MapJavaProxy extends ConcreteJavaProxy {
private static class RubyHashMap extends RubyHash {
@Override
public IRubyObject internalGet(IRubyObject key) {
Set<Map.Entry> entries = ((Map) ((JavaProxy)receiver).getObject()).entrySet();
for (Map.Entry entry : entries) {
IRubyObject rubyfiedKey = JavaUtil.convertJavaToUsableRubyObject(getRuntime(), entry.getKey());
if (key.eql(rubyfiedKey)) {
return JavaUtil.convertJavaToUsableRubyObject(getRuntime(), entry.getValue());
}
}
return null;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment