您的位置:程序门 -> java -> j2se / 基础类



java.util包集合类中的arraylist,linkdlist,hashmap,vector四个类相互间的一些联系和区别


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


java.util包集合类中的arraylist,linkdlist,hashmap,vector四个类相互间的一些联系和区别
发表于:2007-01-04 20:38:41 楼主
说说集合类中的arraylist,linkdlist,hashmap,vector四个类相互间的一些联系和区别好不?嘿嘿
发表于:2007-01-04 21:07:341楼 得分:0
arraylist,linkedlist,vector都是list的实现类,前两都没有实现同步机制,vector实现了同步机制,arraylist代表大小可变的数组,允许对元素进行快速随机访问,但向list中间进行添加移除元素操作时效率很差,linkedlist采用了链表数据结构,对顺序访问进行了优化,提高了向list中间位置进行操作的效率。vector的作用跟arraylist差不多,只是区别于一个实现了同步机制,一个没有。

hashmap是map的一个实现类,采用了哈希算法来存取key对象,具有很好的存取性能。并且允许将null作为map的key或value,hashmap也是没有实现同步机制的。

书上有很详细的介绍,
发表于:2007-01-04 21:36:322楼 得分:0
看think   in   java
发表于:2007-01-04 21:52:063楼 得分:0
学了数据结构就一切明了:)
发表于:2007-01-04 23:03:374楼 得分:0
说具体点好不
为什么说学数据结构后就明了?
发表于:2007-01-04 23:10:565楼 得分:0
学了数据结构后你也可以写自己的arraylist,linkdlist,hashmap,vector

嘿嘿
发表于:2007-01-04 23:11:586楼 得分:0
比如链表和数组的区别
必须要数据结构知识才能懂
以及树等...
发表于:2007-01-04 23:45:467楼 得分:0
哦!懂了些,现在就只是学了那四个类中方法的基本用法.自己想看看他们的一些联系咯!
发表于:2007-01-05 14:21:518楼 得分:0
怎么没人来了呢?继续啊,想看看啊
发表于:2007-01-05 14:35:539楼 得分:0
hashmap和其他3个没有可比性。

al,   ll,   v都是list,

al、v都是基于动态数组,而ll基于(双向)链表、因而ll更适于频繁进行插、删的操作
al、ll的方法都不是synchronzied,而v是synchronized的
由于ll是链表,所以不存在初始大小、扩大策略等问题
al、v的构造函数里都可以指定初始大小、且默认都是10(所以在能够确定你要放的东西个数的大概范围时应该事先指定,避免多次重新分配空间)
al在需要扩大的时候   *   1.5,而v默认   *   2,且v可以指定每次固定变大一个尺寸,比如每次扩大10,而不是翻倍
3者的构造函数,还有addall方法能够帮助彼此之间转换,用以在不同阶段的大批量操作下,提高性能
v的岁数比较大,属于jdk中的元老。早在java.util.collection/list还没出现之前的jdk   1.0里,就有了。所以某些情况下,比如ms   vm下也通用applet,只能用vector
发表于:2007-01-05 15:03:0810楼 得分:0
谢谢楼上的讲解!!!
发表于:2007-01-05 18:06:3011楼 得分:0
现在是否该结帖了么?
还有高手要补充的没有啊?
发表于:2007-01-05 21:18:5012楼 得分:0
o   o
  o
发表于:2007-01-05 22:10:2613楼 得分:0
what?嘿嘿,打算结了
发表于:2007-01-08 08:35:3314楼 得分:0
向   shine333(enihs)   学习。。
呵呵
发表于:2007-01-16 15:52:4715楼 得分:0
vector好象有一段时间被deprecated了,不过在1.6里面组知道怎么的,又重新定义了吧


快速检索

最新资讯
热门点击