Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java循环并向映射添加值_Java_List_Map_Hashmap - Fatal编程技术网

java循环并向映射添加值

java循环并向映射添加值,java,list,map,hashmap,Java,List,Map,Hashmap,刚开始使用map,想知道如何添加值并循环使用它来检索值。下面是我的代码: Map<String, List<String>> map = new LinkedHashMap<String, List<String>>(); for ( int i = 0, m = 1; i < visualcategory.size(); i = i+2, m = m+2) { String categoryName = visualcategor

刚开始使用map,想知道如何添加值并循环使用它来检索值。下面是我的代码:

Map<String, List<String>> map = new LinkedHashMap<String, List<String>>();

for ( int i = 0, m = 1; i < visualcategory.size(); i = i+2, m = m+2) {
    String categoryName = visualcategory.get(m);
    map.put(categoryName , null);
}

它当前为空,因为下一个进程(如下)将在循环通过for条件时填充该列表,除非可以同时添加categoryName和列表值

现在,我需要循环并添加每个字符串/映射的列表

String value1 = value;
String value2 = value;

for (Entry<String, List<String>> entry : map.entrySet()) {
    map.put(value1, entry.getValue());  --> doesn't work
    map.put(value2, entry.getValue());  --> doesn't work
}

问题是,它不起作用,我似乎无法将其添加到列表中。我需要关于如何从map>添加值并循环到它的帮助?

使用迭代器代替EntrySet

    Map<String, List<String>> map = new LinkedHashMap<String, List<String>>();
    Iterator itr=map.keySet().iterator();
    while (itr.hasNext()) {
        String key =  itr.next().toString();
        String value=map.get(key).toString();
        System.out.println(key+"="+value);
    }
Map Map=newlinkedhashmap();
迭代器itr=map.keySet().Iterator();
while(itr.hasNext()){
字符串键=itr.next().toString();
字符串值=map.get(key.toString();
System.out.println(键+“=”+值);
}

创建地图时,不要用
null
s填充地图,而是用空的
列表填充地图:

Map<String, List<String>> map = new LinkedHashMap<String, List<String>>();

for ( int i = 0, m = 1; i < visualcategory.size(); i = i+2, m = m+2) {
    String categoryName = visualcategory.get(m);
    map.put(categoryName , new ArrayList<String>());
}
Map Map=newlinkedhashmap();
对于(int i=0,m=1;i
现在,当您准备好填充值时,可以执行以下操作:

String value1 = value;
String value2 = value;

for (List<String> list : map.values()) {
    list.add(value1);
    list.add(value2);
}
字符串值1=值;
字符串值2=值;
对于(列表:map.values()){
列表。添加(值1);
列表。添加(值2);
}
如果在创建地图时具有这些值,则可以使其更简单:

String value1 = value;
String value2 = value;

Map<String, List<String>> map = new LinkedHashMap<String, List<String>>();

for ( int i = 0, m = 1; i < visualcategory.size(); i = i+2, m = m+2) {
    String categoryName = visualcategory.get(m);
    List<String> values = new ArrayList<String>();
    values.add(value1);
    values.add(value2);
    map.put(categoryName, values);
}
字符串值1=值;
字符串值2=值;
Map Map=newlinkedhashmap();
对于(int i=0,m=1;i
这就是您需要的:

anotherMap.forEach((k, v) -> myMap.put(k.toString(), v.toString()));

来源:

映射包含
null
作为值,但没有列表,为什么不从那里开始?是否要将映射值添加到列表中?是否可以使用示例值而不是
null
修改
map{5=null、11=null、15=null、24=null、96=null、98=null}
?这很令人困惑。。正如您所期望的那样,
MAP{5=[value1,value2等]、11=[value1,value2等]、….
和非空值..它当前为空值,因为下一个进程(如下)将在它循环通过一个for条件时填充该列表,除非可以同时添加categoryName和列表值?看看Guava的。
String value1 = value;
String value2 = value;

Map<String, List<String>> map = new LinkedHashMap<String, List<String>>();

for ( int i = 0, m = 1; i < visualcategory.size(); i = i+2, m = m+2) {
    String categoryName = visualcategory.get(m);
    List<String> values = new ArrayList<String>();
    values.add(value1);
    values.add(value2);
    map.put(categoryName, values);
}
anotherMap.forEach((k, v) -> myMap.put(k.toString(), v.toString()));