java:map中每个ArrayList的打印大小<enumtype,list <object =“”>

时间:2017-07-03 09:55:34

标签: java

我有以下地图:

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中找不到任何例子。

感谢您的帮助!

1 个答案:

答案 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]}

我希望你也觉得这很有用:

HashMap with multiple values under the same key