import java.util.*;
enum KeyFinder {
A(1, "a", "a", "A"),
TILDE(2, "~", "~", "`");
private static final Map
<String, KeyFinder
> lookup
= new LinkedHashMap
<String, KeyFinder
>();
static {
for (KeyFinder type : EnumSet.allOf(KeyFinder.class)) {
for (String key
: type.
lookupKeys) { lookup.put(key, type);
}
}
}
private final int key;
private final String[] lookupKeys
;
this.key = key;
this.keyName = keyName;
this.lookupKeys = lookupKeys;
}
public static void main
(String[] args
) { System.
out.
println(lookup.
get("a")); System.
out.
println(lookup.
get("~")); }
}
aW1wb3J0IGphdmEudXRpbC4qOwoKZW51bSBLZXlGaW5kZXIgewoJQSgxLCAiYSIsICJhIiwgIkEiKSwKCVRJTERFKDIsICJ+IiwgIn4iLCAiYCIpOwoKCXByaXZhdGUgc3RhdGljIGZpbmFsIE1hcDxTdHJpbmcsIEtleUZpbmRlcj4gbG9va3VwID0gbmV3IExpbmtlZEhhc2hNYXA8U3RyaW5nLCBLZXlGaW5kZXI+KCk7CgoJc3RhdGljIHsKCQlmb3IgKEtleUZpbmRlciB0eXBlIDogRW51bVNldC5hbGxPZihLZXlGaW5kZXIuY2xhc3MpKSB7CgkJCWZvciAoU3RyaW5nIGtleSA6IHR5cGUubG9va3VwS2V5cykgewoJCQkJbG9va3VwLnB1dChrZXksIHR5cGUpOwoJCQl9CgkJfQoJfQoKCglwcml2YXRlIGZpbmFsIGludCBrZXk7Cglwcml2YXRlIGZpbmFsIFN0cmluZyBrZXlOYW1lOwoJcHJpdmF0ZSBmaW5hbCBTdHJpbmdbXSBsb29rdXBLZXlzOwoKICAgIEtleUZpbmRlcihpbnQga2V5LCBTdHJpbmcga2V5TmFtZSwgU3RyaW5nLi4uIGxvb2t1cEtleXMpIHsKICAgICAgICB0aGlzLmtleSA9IGtleTsKICAgICAgICB0aGlzLmtleU5hbWUgPSBrZXlOYW1lOwogICAgICAgIHRoaXMubG9va3VwS2V5cyA9IGxvb2t1cEtleXM7CiAgICB9CgoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoJCVN5c3RlbS5vdXQucHJpbnRsbihsb29rdXApOwoJCVN5c3RlbS5vdXQucHJpbnRsbihsb29rdXAuZ2V0KCJhIikpOwoJCVN5c3RlbS5vdXQucHJpbnRsbihsb29rdXAuZ2V0KCJ+IikpOwogICAgICAgIH0KfQ==