gpt4 book ai didi

java - 如何创建由 Map 支持的可变列表

转载 作者:行者123 更新时间:2023-12-05 07:33:35 25 4
gpt4 key购买 nike

我怎样才能返回 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
  • 我无法修改对象的公共(public)方法 Foo , 因为它在其他项目中使用
  • 我不关心 List 中的顺序
  • getById方法应该继续快速工作

最佳答案

尝试这样的事情:---


List<String> list = new ArrayList<>();  

Set keys = backedMap.keySet();
for (Iterator i = keys.iterator(); i.hasNext(); ) {
Integer key = (Integer) i.next();
String value = (String) backedMap.get(key);
list.add(value);
}


//To print Values in ArrayList :--
for(String s : list) {
System.out.println("printing element -- " + s);
}

关于java - 如何创建由 Map 支持的可变列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50535051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com