我想把Map放在Map的值字段中:
Map<String,String> innermap = new HashMap<String, String>();
Map<String ,Map<String,String>> map = new HashMap<String ,Map<String,String>>();
map.put("AAA", innermap.put("ab", "a , b") );
这给了我以下错误:
The method put(String, Map<String,String>) in the type Map<String,Map<String,String>> is not applicable for the arguments (String, String)
这可能吗?如果是,如何在Map内使用Map或替代此结构的任何其他技术?
4条答案
按热度按时间u4vypkhs1#
Map上的put方法不会返回要放置到的Map。。。您需要稍微切换代码:
72qzrwbm2#
它将像这样工作
put(“ab”,“a,b”)返回字符串(与键“ab”关联的上一个值,或者如果在map中找不到该键,则返回null),这就是为什么要这样做的原因
您得到编译时错误。类型map<string,map<string,string>>中的方法put(string,map<string,string>)不适用于参数(string,string),因为innermap.put(“ab”,“a,b”)的返回类型是string
pwuypxnk3#
是的,你能做到。如前所述,可以这样做。
但是从Java8开始,如果Map不存在,可以将其创建为值,然后使用
computeIfAbsent
如果键的值(即map)不存在,则添加该值,然后返回。否则,只返回给定键的值(即map)。印刷品
9bfwbjaz4#
innermap.put("ab", "a , b")
将返回您的值-->的类型(以字符串为例)。在源代码java中:
public interface Map<K,V>
功能V put(K key, V value);
```@return the previous value associated with key, or
Map<String,String> innermap = new HashMap<String, String>();
Map<String ,Map<String,String>> map = new HashMap<String ,Map<String,String>>();
innermap.put("ab", "a , b")
map.put("AAA", innermap );