8月22讲课记录

1.用自己的话描述清楚什么是集合,集合的重要性,集合应该提供的方法(CRUD)
2.看Collection的帮助,介绍一下Bags的概念
3.Set集合的概念,介绍HashSet和TreeSet的区别,由AbstractSet.removeAll方法引出模板方法设计模式(父类的方法完成了业务流程,这个业务流程调用了其他的方法,其他的方法是抽象的,由子类去具体完成),由TreeSet(Comparator)构造方法引出策略模式(将比较大小的任务委托给专门的比较器去完成)。顺便介绍了“尽量使用组合,避免使用继承”和“闭合原则”,不仅仅是原则,而应该作为设计目标去追求。
4.HashSet按照hashcode值的某种运算方式进行存储,而不是直接按hashCode值的大小进行存储。例如,
"abc" ---> 78,"def" ---> 62,"xyz" ---> 65在hashSet中的存储顺序不是62,65,78,这些问题感谢以前一个叫崔健的学员提出,最后通过查看源代码给他解释清楚,看本次培训学员当中有多少能看懂源码。
LinkedHashSet按插入的顺序存储,那被存储对象的hashcode方法还有什么作用呢?学员想想!hashset集合比较两个对象是否相等,首先看hashcode方法是否相等,然后看equals方法是否相等。new 两个Student插入到HashSet中,看HashSet的size,实现hashcode和equals方法后再看size。
5.借助HashSet讲解了J2SE 5.0中的泛型,接着用public boolean equals(Student obj)引出equals方法的问题,并讲解了如何通过J2SE5.0的@Override注解来避免这种问题。
6.j2se5.0中的for循环增强语句。
7.学员问题:build.xml文件中使用<property>元素引用一个property文件时,property文件中不能出现中文注释的解决办法,引出了native2ascii命令的讲解。看Property类的帮助,可以连接到native2ascii的帮助。
8.同一个对象可以在Vector中加入多次。往集合里面加元素,相当于集合里用一根绳子连接到了目标对象。
9.写出下面的综合代码,加强对集合,泛型,for循环增强的理解:
  HashMap<String,Integer> hm = new HashMap<String,Integer>();
  hm.put("zxx",19);
  hm.put("lis",18);
  
  Set<Map.Entry<String,Integer>> mes= hm.entrySet();
  //Map.Entry<String,Integer> me;//不能这样!
  for(Map.Entry<String,Integer> me : mes)
  {
   System.out.println(me.getKey() + ":" + me.getValue());
  }
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值