9:07 2006-8-22

9:07 2006-8-22
今天讲到了AbstractSet中的非Abstract removeAll()方法(模版方法设计模式),他是调用自身的remove函数一次删除全部的元素,然而remove函数是抽象的,只要该派生类提供了remove函数,就可以不用撰写removeAll函数了,AbstaractSet类中已经默认使用提供的remove函数来进行全部删除的动作。
父类可以提供一个流程函数,他分别调用function1,function2,function3...,然而不能提供具体的函数,而子类只需要提供具体的函数,就可以完成模版方式,达到代码的重用的效果。

HashSet内部是由HastMap来实现的,Hashcode相同时,考虑equals的比较。


策略模式:策略由用户提供,而此类则通过这个策略来进行其他的操作。当策略更新的时候不用更改类(开闭原则)

今天写完张老师的小练习(hashset),以同样代码把集合类换为TreeSet,出现了莫名的错误(ClassCastException),用HashSet就没有问题察看帮助,发现add方法有throws ClassCastException.察看TreeSet源代码,发现TreeSet内部用了SortedMap,但是没有任何扔出的代码。察看了SortedMap也没有看到。看了帮助,想到好像有排序,必须提供CompareTo函数,并实现接口,另外完成了TreeSet和LinkedHashSet 的测试.

@Override
用于说明要覆盖父类的函数
如果此方法没有覆盖成功则编译错误
since JDK 1.5

中午问了张老师泛型物件的动态创建,乍看之下,JDK1.5并没有这个动态创建功能,如:
class Creator< TYPE >
{
    TYPE obj = new TYPE();   //Error!
    TYPE obj = new TYPE[];   //Error!
}
不过通过研究JDK源代码,发现了解决方案了。具体不细讲,察看Java笔记,搜寻泛型即可
for-each

使用Java的native2ascii工具,说明在Properties说明的连接中。
native2ascii  [option]  [inputfile [ outputfile ] ]

Vector->synchronized

 

for-each
int i;
for( i : new int[33] ); //Error!

使用Property文党的时候
os=windows
dest=./src_
结尾的空格会被直接当作值

EF BB BF  这是UTF-8码的头部
FF EF     这是Unicode码的头部
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值