Java 将所有值映射到一个键 Map mp=newhashmap(); 扫描仪sc=新的扫描仪(System.in); System.out.println(“输入仪器名称”); 字符串名称=sc.next(); mp.put(名称“控制阀”); 下院议员put(姓名“BDV”); 下院议员put(姓名“SDV”); mp.put(名称,“开关阀”); mp.put(名称,“分析仪”); Set s=mp.entrySet(); 迭代器it=s.Iterator(); while(it.hasNext()) { Map.Entry m=(Map.Entry)it.next(); String key=(String)m.getKey(); 字符串值=(字符串)m.getValue(); System.out.println(“仪器名称:+键+”字段:+值); } } }

Java 将所有值映射到一个键 Map mp=newhashmap(); 扫描仪sc=新的扫描仪(System.in); System.out.println(“输入仪器名称”); 字符串名称=sc.next(); mp.put(名称“控制阀”); 下院议员put(姓名“BDV”); 下院议员put(姓名“SDV”); mp.put(名称,“开关阀”); mp.put(名称,“分析仪”); Set s=mp.entrySet(); 迭代器it=s.Iterator(); while(it.hasNext()) { Map.Entry m=(Map.Entry)it.next(); String key=(String)m.getKey(); 字符串值=(字符串)m.getValue(); System.out.println(“仪器名称:+键+”字段:+值); } } },java,maps,Java,Maps,在这种情况下,只有最后一个值映射到键,即分析器映射到键 如何将所有值映射到用户输入的一个键。它还必须要求用户为每个值字段输入值 更新代码-:它要求输入仪器名称,但随后显示异常“java.util.ArrayList不能转换为java.lang.String” Map mp=newhashmap(); 扫描仪sc=新的扫描仪(System.in); System.out.println(“输入仪器名称”); 字符串名称=sc.next(); List valList=new ArrayList()

在这种情况下,只有最后一个值映射到键,即分析器映射到键

如何将所有值映射到用户输入的一个键。它还必须要求用户为每个值字段输入值

更新代码-:它要求输入仪器名称,但随后显示异常“java.util.ArrayList不能转换为java.lang.String”

Map mp=newhashmap();
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入仪器名称”);
字符串名称=sc.next();
List valList=new ArrayList();
valList.添加(“控制阀”);
价值清单。添加(“BDV”);
valList.添加(“SDV”);
valList.添加(“开关阀”);
添加(“分析仪”);
mp.put(姓名、价值清单);
Set s=mp.entrySet();
迭代器it=s.Iterator();
while(it.hasNext())
{
Map.Entry m=(Map.Entry)it.next();
String key=(String)m.getKey();
字符串值=(字符串)m.getValue();
System.out.println(“仪器名称:+键+”字段:+值);
}
}
}
您可能需要使用来实现这一点

类似于映射的集合,但可以将多个值与单个键关联。如果使用相同的键但不同的值调用put(K,V)两次,则多重映射包含从键到两个值的映射

(或)

将值更改为列表,并将具有相同键的所有值添加到该列表中

例如:

 Map<String,List<String>> mp=new HashMap<String,List<String>>();
      Scanner sc=new Scanner(System.in);
      System.out.println("Enter the instrument name");
      String name=sc.next();
      List<String> valList = new ArrayList<String>();
      valList.add("Control Valve");
      valList.add("BDV");
      valList.add("SDV");
      valList.add("ON-OFF VALVE");
      valList.add("Analyser");
      mp.put(name, valList);




        Set s=mp.entrySet();

        Iterator it=s.iterator();

        while(it.hasNext())
        {

            Map.Entry m =(Map.Entry)it.next();

            String key=(String)m.getKey();

            String value=(String)m.getValue();

            System.out.println("Instrument name :"+key+" fields:"+value);
        }
    }
}
List valList=new ArrayList();
valList.add(val1);
valList.add(val2);
mp.put(姓名、价值清单);
您可能需要使用来实现这一点

类似于映射的集合,但可以将多个值与单个键关联。如果使用相同的键但不同的值调用put(K,V)两次,则多重映射包含从键到两个值的映射

(或)

将值更改为列表,并将具有相同键的所有值添加到该列表中

例如:

 Map<String,List<String>> mp=new HashMap<String,List<String>>();
      Scanner sc=new Scanner(System.in);
      System.out.println("Enter the instrument name");
      String name=sc.next();
      List<String> valList = new ArrayList<String>();
      valList.add("Control Valve");
      valList.add("BDV");
      valList.add("SDV");
      valList.add("ON-OFF VALVE");
      valList.add("Analyser");
      mp.put(name, valList);




        Set s=mp.entrySet();

        Iterator it=s.iterator();

        while(it.hasNext())
        {

            Map.Entry m =(Map.Entry)it.next();

            String key=(String)m.getKey();

            String value=(String)m.getValue();

            System.out.println("Instrument name :"+key+" fields:"+value);
        }
    }
}
List valList=new ArrayList();
valList.add(val1);
valList.add(val2);
mp.put(姓名、价值清单);

我建议你看看

类似于映射的集合,但可以关联多个值 用一把钥匙。如果用相同的键调用put(K,V)两次,但是 不同的值,多重映射包含从键到键和键的映射 价值观


否则,您必须将
字符串的
映射到某个Java集合。这会起作用,但很痛苦,因为每次输入新密钥时都必须初始化集合,如果存在密钥的空集合,则必须将其添加到集合中。

我建议查看

类似于映射的集合,但可以关联多个值 用一把钥匙。如果用相同的键调用put(K,V)两次,但是 不同的值,多重映射包含从键到键和键的映射 价值观


否则,您必须将
字符串的
映射到某个Java集合。这将起作用,但很痛苦,因为每次输入新密钥时都必须初始化集合,如果存在密钥的空集合,则必须将其添加到集合中。

您可能有一个字符串数组的映射。然后应该检索数组列表并添加新值

List<String> valList = new ArrayList<String>();
valList.add(val1);
valList.add(val2);
mp.put(name, valList);
Map mp=newhashmap();

您可能有一个字符串数组的映射。然后应该检索数组列表并添加新值

List<String> valList = new ArrayList<String>();
valList.add(val1);
valList.add(val2);
mp.put(name, valList);
Map mp=newhashmap();

我建议使用

  Map<Object,ArrayList<String>> mp=new HashMap<Object, ArrayList<String>>();
Map mp=newhashmap();
这样您就可以为给定的键维护一组值

如果列表可用于给定的键,则获取该列表并将新值添加到列表中

更新

Map<Object,List<String>> mp=new HashMap<Object, List<String>>();
Map mp=newhashmap();
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入仪器名称”);
字符串名称=sc.next();
List valList=new ArrayList();
valList.添加(“控制阀”);
价值清单。添加(“BDV”);
valList.添加(“SDV”);
valList.添加(“开关阀”);
添加(“分析仪”);
mp.put(姓名、价值清单);
for(字符串键:mp.keySet()){
系统输出打印(“仪器名称:+键+”值:);
for(字符串值:mp.get(键)){
系统输出打印(val+“,”);
}
}

我建议使用

  Map<Object,ArrayList<String>> mp=new HashMap<Object, ArrayList<String>>();
Map mp=newhashmap();
这样您就可以为给定的键维护一组值

如果列表可用于给定的键,则获取该列表并将新值添加到列表中

更新

Map<Object,List<String>> mp=new HashMap<Object, List<String>>();
Map mp=newhashmap();
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入仪器名称”);
字符串名称=sc.next();
List valList=new ArrayList();
valList.添加(“控制阀”);
价值清单。添加(“BDV”);
valList.添加(“SDV”);
valList.添加(“开关阀”);
添加(“分析仪”);
mp.put(姓名、价值清单);
for(字符串键:mp.keySet()){
系统输出打印(“仪器名称:+键+”值:);
for(字符串值:mp.get(键)){
系统输出打印(val+“,”);
}
}

我想您应该使用一个自定义类,为您需要的每一条信息提供一个字段。对于每个名称,可以将其添加到地图中一次

Map<String,List<String>> mp=new HashMap<String,List<String>>();
      Scanner sc=new Scanner(System.in);
      System.out.println("Enter the instrument name");
      String name=sc.next();
      List<String> valList = new ArrayList<String>();
      valList.add("Control Valve");
      valList.add("BDV");
      valList.add("SDV");
      valList.add("ON-OFF VALVE");
      valList.add("Analyser");
      mp.put(name,valList);

      for(String key : mp.keySet()){
          System.out.print("Instrument name :"+key+" Values : ");
          for(String val : mp.get(key)){
              System.out.print(val+",");
          }


      }

我怀疑您应该使用一个自定义类,为您需要的每一条信息都提供一个字段