A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package zuoYe;

import java.util.Comparator;
import java.util.HashMap;
import java.util.Set;
import java.util.Map.Entry;
import java.util.TreeMap;

public class Test_10 {

        /**
         * 10:有一个Map集合里面存储了学生的名字,年龄,内容如下
{赵四=21, 王二=17, 张三=21}
a:将里面的元素使用两种遍历方式打印的控制台,
b:将赵四的年龄改为18;
c;根据年龄的降序将里面的元素存入到 Student.txt中.
         */
        public static void main(String[] args) {
                HashMap<String,Integer> hm = new HashMap<>();
               
                hm.put("赵四", 21);
                hm.put("王二", 17);
                hm.put("张三", 21);
        for (String string : hm.keySet()) {
                System.out.println(string+"年龄"+hm.get(string));
        }
        Set<Entry<String, Integer>> entrySet = hm.entrySet();
        for (Entry<String, Integer> entry : entrySet) {
                System.out.println(entry.getKey()+"年龄是"+entry.getValue());
        }
        for (Entry<String, Integer> en : entrySet) {
                if("赵四".equals(en.getKey())){
                        hm.remove("赵四");
                        hm.put("赵四", 18);
                }
        }
       
        final TreeMap<String,Integer> tm = new TreeMap<>(new Comparator<String>() {

                @Override
                public int compare(String o1, String o2) {
                        Integer i = tm.get("");
                        int num = 1;
                        return num;
                }
        });
       
        tm.putAll(hm);
       
       
        }

}


4 个回复

倒序浏览
hm.remove("赵四");这里不会出现并发修改异常么
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
应该是并发的问题,增强for不能删除元素
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
没有增删哦,这里只是调用,应该是只能传入一个对象进比较器
回复 使用道具 举报
ouyzm 发表于 2016-10-15 23:39
没有增删哦,这里只是调用,应该是只能传入一个对象进比较器

是的,就是这样的问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马