社区
Java SE
帖子详情
老手回答: java 的基本知识
wscft
2006-05-23 03:02:37
说出ArrayList. Vector, LinkedList 这几个类库的存储性能和特性!
...全文
509
14
打赏
收藏
老手回答: java 的基本知识
说出ArrayList. Vector, LinkedList 这几个类库的存储性能和特性!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dekkerhyp411
2006-05-24
打赏
举报
回复
感觉是面试题
wscft
2006-05-24
打赏
举报
回复
是啊, 是面试时候的题目, 没有答上来啊 惭愧!
做鸡真好吃
2006-05-24
打赏
举报
回复
MM~
huangyuanyy
2006-05-24
打赏
举报
回复
easy
wscft
2006-05-24
打赏
举报
回复
还有 jsp 有哪些动作? 作用分别是什么?
Hmilyl
2006-05-23
打赏
举报
回复
很多公司面试的时候要用的 呵呵
tomand
2006-05-23
打赏
举报
回复
学习了,呵呵
huangyuanyy
2006-05-23
打赏
举报
回复
楼主是为了面试吧?,呵呵,这是面试的常问题目,不过最终用那个就要看系统的,取一个平衡,每种类都有自己的优点缺点。
sheep219
2006-05-23
打赏
举报
回复
up
andyjt
2006-05-23
打赏
举报
回复
zhiyuzhe(织雨者)
找的文章经典啊,应该多给分
treeroot
2006-05-23
打赏
举报
回复
up
gary_jojo
2006-05-23
打赏
举报
回复
要打好多字的呢。。。
<jsp:param>,<jsp:inclue>,<jsp:forward>,<jsp:setProperty>.....
dabaishaflyw
2006-05-23
打赏
举报
回复
要回答这个问题不能一概而论,有时候使用Vector比较好;有时是ArrayList,有时候这两个都不是
最好的选择。你别指望能够获得一个简单肯定答案,因为这要看你用它们干什么。下面有4个要考虑
的因素:
l API
l 同步处理
l 数据增长性
l 使用模式
下面针对这4个方面进行一一探讨
API
在由Ken Arnold等编著的《Java Programming Language》(Addison-Wesley, June 2000)一书中有这
样的描述,Vector类似于ArrayList.。所有从API的角度来看这两个类非常相[b]似。但他们之间也还
是有一些主要的区别的。
同步性
Vector是同步的。这个类中的一些方法保证了Vector中的对象是线程安全的。而ArrayList则是异步
的,因此ArrayList中的对象并不是线程安全的。因为同步的要求会影响执行的效率,所以如果你不
需要线程安全的集合那么使用ArrayList是一个很好的选择,这样可以避免由于同步带来的不必要的
性能开销。
数据增长
从内部实现机制来讲ArrayList和Vector都是使用数组(Array)来控制集合中的对象。当你向这两种类
型中增加元素的时候,如果元素的数目超出了内部数组目前的长度它们都需要扩展内部数组的长度,
Vector缺省情况下自动增长原来一倍的数组长度,ArrayList是原来的50%,所以最后你获得的这个集
合所占的空间总是比你实际需要的要大。所以如果你要在集合中保存大量的数据那么使用Vector有一
些优势,因为你可以通过设置集合的初始化大小来避免不必要的资源开销。
使用模式
在ArrayList和Vector中,从一个指定的位置(通过索引)查找数据或是在集合的末尾增加、移除一
个元素所花费的时间是一样的,这个时间我们用O(1)表示。但是,如果在集合的其他位置增加或移除
元素那么花费的时间会呈线形增长:O(n-i),其中n代表集合中元素的个数,i代表元素增加或移除元
素的索引位置。为什么会这样呢?因为在进行上述操作的时候集合中第i和第i个元素之后的所有元素
都要执行位移的操作。这一切意味着什么呢?
这意味着,你只是查找特定位置的元素或只在集合的末端增加、移除元素,那么使用Vector或
ArrayList都可以。如果是其他操作,你最好选择其他的集合操作类。比如,LinkList集合类在增加
或移除集合中任何位置的元素所花费的时间都是一样的—O(1),但它在索引一个元素的使用却比较慢
-O(i),其中i是索引的位置.使用ArrayList也很容易,因为你可以简单的使用索引来代替创建
iterator对象的操作。LinkList也会为每个插入的元素创建对象,所有你要明白它也会带来额外的开
销。
wscft
2006-05-23
打赏
举报
回复
2, jsp 有哪些动作? 作用分别是什么?
Java
线程面试题 Top 50【转载】
不管你是新程序员还是
老手
,你一定在面试中遇到过有关线程的问题。
Java
语言一个重要的特点就是内置了对并发的支持,...在典型的
Java
面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线...
Java
线程面试题 Top 50
不管你是新程序员还是
老手
,你一定在面试中遇到过有关线程的问题。
Java
语言一个重要的特点就是内置了对并发的支持...在典型的
Java
面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用
转:
JAVA
集合框架思考
对于
Java
集合框架(
Java
Collections Framework,JCF),
Java
玩家大概都不会陌生,在C++里面相似的概念是标准模板库(Standard Template Library,STL),主要是对一些数据结构和相关算法的封装。前段时间在J2SE版...
java
中not equals,
Java
基础之String中equals,声明方式,等大总结
无论你是一个编程新手还是
老手
,提到String你肯定感觉特别熟悉,因为String类我们在学习
java
基础的时候就已经学过,但是String类型有我们想象的那么简单吗?其实不然,String类型的知识点还是比较多的。今天就和大家...
Java
基础学习总结(68)——有关
Java
线程方面的面试题
不管你是新程序员还是
老手
,你一定在面试中遇到过有关线程的问题。
Java
语言一个重要的特点就是内置了对并发的支持,让
Java
大...在典型的
Java
面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程,
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章