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):" "));
}