Java HashMap:添加到arraylist
我使用的是HashMap类,它如下所示:Java HashMap:添加到arraylist,java,hashmap,Java,Hashmap,我使用的是HashMap类,它如下所示: HashMap<String, ArrayList<String>> fileRank = new HashMap<String, ArrayList<String>>(); 我想在file1之后添加file2到上面的关键字:word 您必须首先获得阵列列表: ArrayList<String> list = fileRank.get(word); list.add(file1); Arra
HashMap<String, ArrayList<String>> fileRank = new HashMap<String, ArrayList<String>>();
我想在file1之后添加file2到上面的关键字:word 您必须首先获得阵列列表:
ArrayList<String> list = fileRank.get(word);
list.add(file1);
ArrayList list=fileRank.get(word);
列表。添加(文件1);
当然,如果你还不知道是否有一个输入键,它会变得更加复杂
ArrayList<String> list = fileRank.get(word);
if (list == null) {
list = new ArrayList<String>();
fileRank.put(word, list);
}
list.add(file1);
ArrayList list=fileRank.get(word);
if(list==null){
列表=新的ArrayList();
fileRank.put(单词、列表);
}
列表。添加(文件1);
您向映射请求某个键的值,该键是一个ArrayList,您可以在其上调用add
String key = "myKey";
fileRank.put( key, new ArrayList<String>() );
//...
fileRank.get( key ).add( "a value");
String key=“myKey”;
put(key,newarraylist());
//...
get(key).add(“一个值”);
根据字符串键获取ArrayList
,对ArrayList执行添加()
,然后将其放回HashMap
(可选,因为映射已经包含对它的引用)
一种可能的解决办法:
public class MyContainer {
private final Map<String, List<String>> myMap = new HashMap<String, List<String>>();
public void add(String key, String value) {
if(myMap.containsKey(key)) {
myMap.get(key).add(value);
} else {
ArrayList<String> newList = new ArrayList<String>();
newList.add(value);
myMap.put(key, newList);
}
}
}
公共类MyContainer{
私有最终映射myMap=newhashmap();
公共void添加(字符串键、字符串值){
if(myMap.containsKey(键)){
myMap.get(key.add)(value);
}否则{
ArrayList newList=新的ArrayList();
添加(值);
myMap.put(key,newList);
}
}
}
私有静态HashMap>mmArrays=newhashmap>()
mmArrays.put(键、数据) 您可能还希望查看第三方集合库中的multimap类。注意:如果可能,请将接口用作声明类型:Map fileRank=new HashMap();为什么要把它放回去?有必要吗?你不必。编辑了我的帖子,觉得这样更可读。
fileRank.get(word).add(String)
fileRank.put(work, list);
public class MyContainer {
private final Map<String, List<String>> myMap = new HashMap<String, List<String>>();
public void add(String key, String value) {
if(myMap.containsKey(key)) {
myMap.get(key).add(value);
} else {
ArrayList<String> newList = new ArrayList<String>();
newList.add(value);
myMap.put(key, newList);
}
}
}