这是我的代码:
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));
}
}
}
Run Code Online (Sandbox Code Playgroud)
我不想仅仅为了从地图中找到结果而使用大的"for循环",此外,我无法更改地图中的键(例如,我无法将500更改为4).
我该怎么做才能减少循环条件?
这将迭代Map中的所有键:
for (Integer key : map.keySet()) {
...
}
Run Code Online (Sandbox Code Playgroud)
但是,我没有在循环中看到这一点,因为您只为特定键(7999)执行某些操作,因此您的循环可以简化为:
System.out.println(map.get(b));
Run Code Online (Sandbox Code Playgroud)
更改密钥不是您可以使用单个方法执行的操作.您必须先删除旧密钥,然后使用相同的值插入新密钥.
if (map.containsKey(500))
map.put(4,map.remove(500));
Run Code Online (Sandbox Code Playgroud)