我有以下地图:
Map<InputTypeEnum, List<Object>> objectsMap;
objectsMap.put(InputTypeEnum.Text, textList);
objectsMap.put(InputTypeEnum.Number, NumbersList);
objectsMap.put(InputTypeEnum.Symbols, SymbolsList);
我想遍历Map并打印以控制每个InputTypeEnum列表中的对象数。
例如:
&#34;文本列表有4个元素&#34;
&#34;数字列表有2个元素&#34;
&#34;符号列表包含5个元素&#34;
我在这里找不到任何例子,或者在google中找不到任何例子。
感谢您的帮助!
答案 0 :(得分:0)
如果你想要的东西与你说的一样,你真的不需要迭代,只能从地图上得到这些值:
System.out.printf("the text list has %d elements \n",objectsMap.get(InputTypeEnum.Text).size());
System.out.printf("the numbers list has %d elements \n",objectsMap.get(InputTypeEnum.Number).size());
System.out.printf("the symbols list has %d elements",objectsMap.get(InputTypeEnum.Symbols).size());
但是如果你说“迭代”,那是因为你的地图中每个tipe都有多个列表。在这种情况下,您应该考虑另一种方法,即在同一个密钥下替换旧值。您可以在我的示例中看到:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
enum InputTypeEnum{
Text, Number, Symbols;
}
public class MapEnumIteration {
public static void main(String[] args) {
List textList = new ArrayList<String>();
textList.add("test1");
textList.add("test2");
textList.add("test3");
textList.add("test4");
List numbersList = new ArrayList<Number>();
numbersList.add(1);
numbersList.add(2);
List symbolsList = new ArrayList<String>();
symbolsList.add("symbol1");
symbolsList.add("symbol2");
symbolsList.add("symbol3");
symbolsList.add("symbol4");
symbolsList.add("symbol5");
List textList2 = new ArrayList<String>();
textList2.add("test 2.1");
textList2.add("test 2.2");
Map<InputTypeEnum, List<Object>> objectsMap = new HashMap<InputTypeEnum, List<Object>>();
objectsMap.put(InputTypeEnum.Text, textList);
objectsMap.put(InputTypeEnum.Number, numbersList);
objectsMap.put(InputTypeEnum.Symbols, symbolsList);
objectsMap.put(InputTypeEnum.Text, textList2);
System.out.printf("the text list has %d elements \n",objectsMap.get(InputTypeEnum.Text).size());
System.out.printf("the numbers list has %d elements \n",objectsMap.get(InputTypeEnum.Number).size());
System.out.printf("the symbols list has %d elements",objectsMap.get(InputTypeEnum.Symbols).size());
}
}
{Symbols = [symbol1,symbol2,symbol3,symbol4,symbol5],Text = [test 2.1,测试2.2],编号= [1,2]}
我希望你也觉得这很有用: