黑马程序员技术交流社区

标题: 为什么构造器调用会出问题啊,求解?? [打印本页]

作者: ouyzm    时间: 2016-10-15 00:34
标题: 为什么构造器调用会出问题啊,求解??
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);
       
       
        }

}



作者: z443863517    时间: 2016-10-15 08:48
hm.remove("赵四");这里不会出现并发修改异常么

作者: 毛线123    时间: 2016-10-15 10:00
应该是并发的问题,增强for不能删除元素

作者: ouyzm    时间: 2016-10-15 23:39
没有增删哦,这里只是调用,应该是只能传入一个对象进比较器
作者: ouyzm    时间: 2016-10-22 00:37
ouyzm 发表于 2016-10-15 23:39
没有增删哦,这里只是调用,应该是只能传入一个对象进比较器

是的,就是这样的问题




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2