如果我有将List<E>
值映射到键Map<K, E>
的方法,如何返回由Map
支持的valueToKeyMapper
?
class Foo {
private Map<Integer, String> backedMap = new HashMap<Integer, String>();
public List<String> getList() {
// NEED TO RETURN LIST BACKED BY MAP
}
public String getById(Integer id) {
return backedMap.get(id);
}
private static Integer valueToKeyMapper(String value) {
// just as exampl. In reality value will be POJO with method like getId()
return value.hashCode();
}
}
代码应该像这样工作(简单示例):
Foo foo = new Foo();
foo.getList().add("something");
String value = foo.getById("something".hashCode());
// I should see something
注意:
List
应该是可变的,并且必须在基础Map
Foo
的公共方法,因为它已在其他项目中使用List
getById
方法应该继续快速工作答案 0 :(得分:0)
尝试这样的事情:---
/var/log/cron
答案 1 :(得分:0)
尝试在github上使用此List
:ListBackedByMap.java
它使用ForwardingList来维护地图中列表的内部副本。
我发现这个impl有两个问题:
ConcurrentModificationException
。 测试可用here。