Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.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 如何在HashMap中将值的键传递给变量_Java_Hashmap_Key - Fatal编程技术网

Java 如何在HashMap中将值的键传递给变量

Java 如何在HashMap中将值的键传递给变量,java,hashmap,key,Java,Hashmap,Key,我可以将值的键传递到hashmap中的变量中吗? 例如,我有一个值“a”的键987456321。如何在变量中传递键,以便我可以进一步细分键并将其打印为987-654-321 以987为第一位 654中间 321作为最后一个 这样我就可以打印了 第一个+“-”+中间+“-”+最后一个作为987-654-321 通过使用toString()方法。 我是Java新手,请帮帮我 public static void main(String[] args) { HashMap<Lo

我可以将值的键传递到hashmap中的变量中吗? 例如,我有一个值“a”的键987456321。如何在变量中传递键,以便我可以进一步细分键并将其打印为
987-654-321

  • 987
    为第一位
  • 654
    中间
  • 321
    作为最后一个 这样我就可以打印了 第一个+“-”+中间+“-”+最后一个作为987-654-321

通过使用toString()方法。 我是Java新手,请帮帮我

public static void main(String[] args) 
{

    HashMap<Long, String> hashMap = new HashMap<>();
    hashMap.put(987456321L, "A");
    hashMap.put(321654998L, "B");
    hashMap.put(874563210L, "C");
    hashMap.put(987453216L, "B");
    hashMap.put(321650123L, "C");
    hashMap.put(874568745L, "C");

    System.out.println("Size of Map:"+hashMap.size());

    System.out.println("Enter no: ");
    userInput = new Scanner(System.in); 
    no = userInput.nextLong();
    String name = hashMap.get(no);
    System.out.println(name);

    for (Map.Entry<Long, String> entry : hashMap.entrySet()) 
    {
        String key = entry.getKey().toString();
        String value = entry.getValue();
        System.out.println("name " + value + "- Number " + key);
    }

}
publicstaticvoidmain(字符串[]args)
{
HashMap HashMap=新的HashMap();
hashMap.put(987456321L,“A”);
hashMap.put(321654998L,“B”);
hashMap.put(874563210L,“C”);
hashMap.put(987453216L,“B”);
hashMap.put(32165023l,“C”);
hashMap.put(8745687455l,“C”);
System.out.println(“映射的大小:+hashMap.Size());
System.out.println(“输入编号:”);
用户输入=新扫描仪(System.in);
否=userInput.nextLong();
字符串名称=hashMap.get(否);
System.out.println(名称);
for(Map.Entry:hashMap.entrySet())
{
String key=entry.getKey().toString();
字符串值=entry.getValue();
System.out.println(“名称”+值+“-编号”+键);
}
}

您可以像这样迭代映射的所有键值对:

for (final Map.Entry<String, String> entry : map.entrySet()) {
  String key = entry.getKey();
  String value = entry.getValue();
  // do whatever you need to do with key
}

1。特定值的解决方案:

此方法返回值的键

 public static <T, E> Set<T> getKeysByValue(Map<T, E> map, E value) {
        Set<T> keys = new HashSet<T>();
        for (Entry<T, E> entry : map.entrySet()) {
            if (Objects.equals(value, entry.getValue())) {
                keys.add(entry.getKey());
            }
        }
        return keys;
    }

看起来你想让我们为你写些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在海报已经试图自己解决问题时才提供帮助。演示这项工作的一个好方法是包括您迄今为止编写的代码、示例输入(如果有)、预期输出和实际获得的输出(控制台输出、回溯等)。你提供的细节越多,你可能得到的答案就越多。检查和。不太清楚您实际想要实现什么。“在变量中传递键”是什么意思?我猜他想从映射中按值获取键并将其放入变量中。映射是否包含例如两个不同键的值“a”?只需迭代映射并使用键执行任何操作
 public static <T, E> Set<T> getKeysByValue(Map<T, E> map, E value) {
        Set<T> keys = new HashSet<T>();
        for (Entry<T, E> entry : map.entrySet()) {
            if (Objects.equals(value, entry.getValue())) {
                keys.add(entry.getKey());
            }
        }
        return keys;
    }
for (Long key : set) {
    String s = String.valueOf(key);
}