2012年3月27日

Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法

摘要: ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要记录本项的前后项即可,所以插入数度较快!线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图 阅读全文

posted @ 2012-03-27 20:54 linzuxin 阅读(109) 评论(0) 推荐(0) 编辑

HashMap和Hashtable的区别

摘要: 导读:1 HashMap不是线程安全的 hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。2 HashTable是线程安全的一个Collection。HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。HashMap允许将null作为一个entry的key或者value,而Hashta 阅读全文

posted @ 2012-03-27 20:49 linzuxin 阅读(131) 评论(0) 推荐(0) 编辑

JAVA高性能编程

摘要: 1.这里比较一下ArrayList和LinkedList:ArrayList是基于数组,LinkedList基于链表实现。对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。查找操作indexOf,lastIndexOf,contains等,两者差不多。这里只是理论上分析,事实上也不一定,比如ArrayList在末尾插入和删除数据就不设计到数据移动,不过还是有这么个建议:随机访问比较多的话一定要用ArrayList而不是Linked 阅读全文

posted @ 2012-03-27 20:10 linzuxin 阅读(190) 评论(0) 推荐(0) 编辑

ArrayList,LinkedList,Vector的关系和区别

摘要: 一、同步性ArrayList,LinkedList是不同步的,而Vector是的。所以如果要求线程安全的话,可以使用ArrayList或LinkedList,可以节省为同步而耗费开销。但在多线程的情况下,有时候就不得不使用Vector了。当然,也可以通过一些办法包装ArrayList,LinkedList,使他们也达到同步,但效率可能会有所降低。二、数据增长从内部实现机制来讲ArrayList和Vector都是使用Objec的数组形式来存储的。当你向这两种类型中增加元素的时候,如果元素的数目超出了内部数组目前的长度它们都需要扩展内部数组的长度,Vector缺省情况下自动增长原来一倍的数组长度, 阅读全文

posted @ 2012-03-27 19:49 linzuxin 阅读(155) 评论(0) 推荐(0) 编辑

MySQL索引类型一览 让MySQL高效运行起来

摘要: 索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表:CREATETABLEmytable( IDINTNOTNULL, usernameVARCHAR(16)NOTNULL); 我们随机向里面插入了10000条记录,其中有一条:5555, admin。在查找username="admin"的记录 SELECT * FROM mytable WHERE username='admin';时,如果在usernam 阅读全文

posted @ 2012-03-27 09:13 linzuxin 阅读(122) 评论(0) 推荐(0) 编辑

导航