‘壹’ java怎么取map中的key值
map迭代,需要使用map的key,问度娘后记录使用方法如下,希望更多人能学习到.
public class MyUtil1 {
public static void
iteratorMap1(Map m) {
Set
set=m.keySet();//用接口实例接口
Iterator iter =
set.iterator();
while (iter.hasNext())
{//遍历二次,速度慢
String
k=(String)iter.next();
System.out.println(k +"="+ m.get(k));
//System.out.println(iter.next()+"="+
m.get(iter.next()));
//因为指针判断下一个有没有值 iter.next是当前对象
但是 m.get(iter.next())是下一个值
}
public static void iteratorMap(Map m){
Iterator
i=m.entrySet().iterator();
while(i.hasNext()){//只遍历一次,速度快
Map.Entry
e=(Map.Entry)i.next();
System.out.println(e.getKey()+"="+e.getValue());
//System.out.println(e.setValue(""));//返回value的值
}
}
‘贰’ java用map通过value能找到key吗
java中规定map集合中key值必须唯一,value值可以重复,所以通过value来找key可能会出现一个value对应多个key的情况,API中也没有通过value寻找key的方法,所以只能通过自己的方法来获得key值
Map<Integer,String>map=newHashMap<Integer,String>();
map.put(1,"一");
map.put(2,"二");
map.put(3,"三");
map.put(4,"二");
Stringk="二";
Set<Integer>set=map.keySet();
for(Integerstr:set){
if(k.equals(map.get(str))){
System.out.println(str);
}
}
‘叁’ java怎么获取map的key
java 获取map中所有的key和value值
java.util.Iterator 对 collection 进行迭代的迭代器。
java.util.Iterator it = map.entrySet().iterator();
while(it.hasNext()){
java.util.Map.Entry entry = (java.util.Map.Entry)it.next();
entry.getKey() //返回对应的键
entry.getValue() //返回对应的值
}
以前遍历Map key-value比较习惯的方式是先获取Map中的所有key值,
然后根据key,依次从Map中去数据,基本方式如下:
Map<String,String> testData = new HashMap<String, String>();
Set<String> keys = testData.keySet();
for(String key :keys){
System.out.println(key+" "+testData.get(key));
}
上述其中是第一种方法,原来一直用上述方法主要是自己有点懒,有了一种方法后就觉得够用的了,今天看源码,发现还Map接口中还有一个Entry<K,V>的接口,对应的还有一个 Set<Map.Entry<K, V>> entrySet();方法。
也就是说其实Map中的每条key-value数据对应着一个Entry,这样的话遍历Map其实就是要取出每个Entry,也就有了第二种遍历方法:
Set<Entry<String, String>> entries = testData.entrySet();
for (Entry<String, String> entry : entries) {
System.out.println(entry.getKey()+":"+entry.getValue());
}
当少量的数据时,上述两种方法的效率是差不多的,当数据比较多时,第二种还是要比第一种快。
当然上述说的两种遍历针对的情况是遍历出key-value,如果是只想遍历key或value,大可不必用以上的方法了,Map中提供了Set<K> keySet()和Collection<V> values()。
‘肆’ java中Map集合如何修改里面的Key值
修改map的key但是不改变该key对应的value值,可以使用
map.put("key2",map.remove("key1"));
比如:
map.put("key1","value1");--此时:key1--value1
map.put("key2",map.remove("key1"));--此时 :key2--value1