package map; import java.util.HashMap; import java.util.Iterator; import java.util.Map.Entry; import java.util.Set; /** * @author Administrator *注意:HashMap不支持Iterator所以要通过其他方式迭代Map中的Key和Value */ public class EntrySetDemo { public static void main(String[] args) { HashMap<String,String> hs=new HashMap<String,String>(); //添加元素 hs.put("key1", "value1"); hs.put("key2", "value2"); hs.put("key3", "value3"); hs.put("key4", "value4"); hs.put("key5", "value5"); /** * 获取hs返回的Set视图 * 非常注意:返回此映射中包含的映射关系的Set视图,对此Set视图的操作会反映到原来的HashMap */ Set<Entry<String,String>> set=hs.entrySet(); /** * 对Set进行迭代,返回的Entry包含key和value,格式为:key=value */ Iterator<Entry<String,String>> iter=set.iterator(); //这种做法输出的格式为key=value // while(iter.hasNext()){ // System.out.println(iter.next()); // } //对entry进行迭代 while(iter.hasNext()){ Entry<String,String> entry=iter.next();//得到一个entry对象 entry.setValue("123");//将当前迭代的Entry的value替换为123 String key=entry.getKey();//获取当前迭代的entry对象(返回的Set视图中的Entry)的key String value=entry.getValue();//获取当前迭代Entry对象的value System.out.println(key+"="+value); entry.setValue("1");//在此替换当前迭代对象的Value,将映射到HashMap<String,String> } System.out.println("==========================="); //对Set视图的编辑会反应到Entry for(Entry<String,String> entry:set){ //每个Entry就是map中的一个key及其它对应的value被重新封装的对象 for(String key:hs.keySet()){ System.out.println(key+"="+hs.get(key)); } } } }
运行结果为:
key4=123 key3=123 key5=123 key2=123 key1=123 =========================== key4=1=null key3=1=null key5=1=null key2=1=null key1=1=null
时间: 2024-11-05 16:47:10