Java 映射中循环的约简

Java 映射中循环的约简,java,map,Java,Map,这是我的代码: package vvv; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class test { public static void main(String args[]){ Map<Integer, String> map = new HashMap<Integer, Strin

这是我的代码:

package vvv;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class test {

public static void main(String args[]){
    Map<Integer, String> map = new HashMap<Integer, String>();
    map.put(1, "demo");
    map.put(20, "fdemo");
    map.put(60, "gdemo");
    map.put(500, "udemo");
    map.put(8000, "odemo");
    // etc
    int b = 7999;
    for(int i =1; i<=8000; i++)
    {
        if(i == b)
            System.out.println(map.get(b));
    }

}

}
我不想使用一个大的for循环只是为了从map中找到一个结果,另外,我不能更改map中的一个键,例如,我不能将500更改为4


如何减少循环条件?

这将迭代映射中的所有键:

for (Integer key : map.keySet()) {
    ...
}
但是,我看不出循环的意义,因为您只对特定的键7999执行某些操作,因此可以将循环减少为:

System.out.println(map.get(b));
更改密钥不是一种方法可以做到的事情。您必须先删除旧密钥,然后使用相同的值插入新密钥

if (map.containsKey(500))
    map.put(4,map.remove(500));
使用:

如果您只是尝试检查某个键是否存在,甚至不需要循环,请使用map.containKeysome_键


您可能需要注意,如果您的密钥是customer类而不是基元类型,则需要重写equals和hashCode方法,否则会发生不好的情况。

请尝试下面的代码,这样会很好。无需迭代map,只需使用map.conytainsKeykey方法即可

{
  String tempString=null;
  tempString=((map.containsKey(b)?map.get(b):" "));
  System.out.println(tempString);
}
或者你也可以这样写

{

  System.out.println((map.containsKey(b)?map.get(b):" "));
}

这段代码是无意义的,你循环的目的是什么?这只是一个什么的例子?
{
  String tempString=null;
  tempString=((map.containsKey(b)?map.get(b):" "));
  System.out.println(tempString);
}
{

  System.out.println((map.containsKey(b)?map.get(b):" "));
}