06 2009 档案

摘要: ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要记录本项的前后项即可,所以插入数度较快!阅读全文
posted @ 2009-06-21 23:13 ITAres 阅读(111) | 评论 (0) 编辑
摘要: List(列表)、Set(集合)、Map(键值对的集合)都是接口 List和Set继承自Collection接口,Map则是一个单独的接口 List的实现主要有ArrayList、LinkedList、Vector等 Set的实现主要有HashSet、TreeSet等 Map的实现主要有HashMap、TreeMap、Hashtable、Properties等 List和Set一般直接使用iter...阅读全文
posted @ 2009-06-21 22:45 ITAres 阅读(8) | 评论 (0) 编辑
摘要: Array,ArrayList,List,Hashtble,Dictionary,Stack,QueueArray:数组,抽象类。实际上所有对象数组(Object[])都实现了Array抽象类ArrayList:链表,弱类型List:链表,强类型Hashtable,DictionaryDictionary:强类型,存储顺序与加入顺序一至。单线程建议使用。Hashtable:弱类型,存储顺序与加入顺...阅读全文
posted @ 2009-06-16 15:29 ITAres 阅读(11) | 评论 (0) 编辑
摘要: 代码加注释,希望对初学者有用。 阅读全文
posted @ 2009-06-15 23:24 ITAres 阅读(28) | 评论 (0) 编辑
摘要: 对于系统的所有操作符,一般情况下,只支持基本数据类型和标准库中提供的class,对于用户自己定义的class,如果想支持基本操作,比如比较大小,判断是否相等,等等,则需要用户自己来定义关于这个操作符的具体实现。比如,判断两个人是否一样大,我们默认的规则是按照其年龄来比较,所以,在设计person 这个class的时候,我们需要考虑操作符==,而且,根据刚才的分析,比较的依据应该是age。那么为什么叫重载呢?这是因为,在编译器实现的时候,已经为我们提供了这个操作符的基本数据类型实现版本,但是现在他的操作数变成了用户定义的数据类型class,所以,需要用户自己来提供该参数版本的实现。 阅读全文
posted @ 2009-06-15 15:48 ITAres 阅读(237) | 评论 (0) 编辑
摘要: 引用是C++中的概念,初学者容易把引用和指针混淆一起。 一下程序中,n是m的一个引用(reference),m是被引用物(referent)。 int m; int &n = m; n相当于m的别名(绰号),对n的任何操作就是对m的操作。 所以n既不是m的拷贝,也不是指向m的指针,其实n就是m它自己。 阅读全文
posted @ 2009-06-02 23:15 ITAres 阅读(178) | 评论 (0) 编辑