欢迎来到天天文库
浏览记录
ID:8963704
大小:27.00 KB
页数:2页
时间:2018-04-13
《arrayvertorarraylisthashablehashmap等几个易混淆的概念》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Array,Vertor,Arraylist,Hashable,Hashmap等几个易混淆的概念2007-08-2815:47:33
2、分类:默认分类
3、标签:
4、字号大中小订阅一、Array可以存放Object和基本数据类型,但创建时必须指定数组的大小,并不能再改变,Array可以存放任意类型的数据Vertor是放的Object。Vertor一维,Hashmap/Hashtabe二维;Vertor/Arraylist用index作检索,Hashmap/Hashtabe用key作为检索;Hashmap,Arra
5、ylist不是同步的,意味着它们的速度更快;Hashtable,Vertor是同步的,适用于与线程有关时;Hashtale的key不能为null,Hashmap的key和values都可以为null;List(interface):次序是List最重要的特点;它确保维护元素特定的顺序。List为Collection添加了许多方法,使得能够向List中间插入与移除元素(只推荐LinkedList使用)。一个List可以生成ListIterator,使用它可以从两个方向遍历List,也可以从List中间插入和
6、删除元素。ArrayList:由数组实现的List。它允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢。ListIterator只应该用来由后向前遍历ArrayList,而不是用来插入和删除元素,因为这比LinkedList开销要大很多。LinkedList:对顺序访问进行了优化,向List中间插入与删除得开销不大,随机访问则相对较慢(可用ArrayList代替)。它具有方法addFirst()、addLast()、getFirst()、getLast()、removeFirst()
7、、removeLast(),这些方法(没有在任何接口或基类中定义过)使得LinkedList可以当作堆栈、队列和双向队列使用。二、性能方面:通过索引访问和更新元素时,Vector和ArrayList的实现有着卓越的性能,因为不存在除范围检查之外的其他开销。插入元素和删除元素总是要进行数组复制。LinkedList的实质是个双向链表。ArrayList和Vector通常比LinkedList和同步封装之后的LinkedList有着更好的性能。Hashmap,Arraylist不是同步的,属于轻量级应用,性能
8、上应该好些。三、ArrayList和Vector的区别,HashMap和Hashtable的区别答:就ArrayList与Vector主要从二方面来说.1.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的2.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半就HashMap与HashTable主要从三方面来说。1.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java1.2引进的
9、Map接口的一个实现2.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的3.值:只有HashMap可以让你将空值作为一个表的条目的key或value四、迭代器迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。Java中的Iterator功能比较简单,并且只能单向移动:(1)使用方法iterator()要求容器返回一个Iterator。第一次调用It
10、erator的next()方法时,它返回序列的第一个元素。(2)使用next()获得序列中的下一个元素。(3)使用hasNext()检查序列中是否还有元素。(4)使用remove()将迭代器新返回的元素删除。Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。
此文档下载收益归作者所有