首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

关于JavaStack类的使用

标签(空格分隔): java - 为什么不用Stack类 《Java编程思想》第四版一书中明确不建议我们使用java.util.Stack类,一直保留只是为了兼容以前的版本,在17.13.3中提到了原因...主要是因为: Stack类是继承自Vector类,而不是使用Vector来实现Stack,这就产生了一个问题,Vector上可以使用的方法Stack类都可以使用,所以很容易破坏栈应有的规则。...PS:Stack是为了专门实现栈而创建的类,作者在文中也提到“竟然不是用Vector来构建Stack,而是继承Vector”,可见作者也认为额外的操作是使用Stack类所不能容忍的。...但这和建议使用LInkedList不能同一看待,因为一个是专用类,而另外一个是建议实现Stack的一种手段(不能因为可以实现Stack而不能有其他的操作,LinkedList毕竟不是为了Stack而生)...在Java 1.2 出现ArrayList之后基本上就使用起来代替Vector。

1.4K90

Java集合框架(三)—— List、ArrayList、Vector、Stack

从JDK1.2之后,Java提供了系统的集合框架,就将Vector改为实现List接口,做为List的实现之一,从而导致Vector里面有一些功能重复的方法。   ...Vector还提供了一个Stack子类,它用于模拟了“栈”这种数据结构,“栈”通常是指“后进先出”的容器。最后“push”进栈的元素,将最先被“pop”出栈。...与Java中其他集合一样,进栈出栈的都是Object。 Object peek();   //返回“栈”的第一个元素,但并不将该元素“pop”出栈。...public class Test { public static void main(String[] args){ Stack s = new Stack<...所以上面代码在编译时完全正常,但在运行时抛出java.lang.UnsupportedOperationException异常。

75150

Java集合源码分析(三)Vevtor和Stack

现在来看看Vector的子类Stack,学过数据结构都知道,这个就是栈的意思。那么该类就是跟栈的用法一样了   通过查看他的方法,和查看api文档,很容易就能知道他的特性。...四、总结Vector和Stack 4.1、Vector总结(通过源码分析)   1)Vector线程安全是因为它的方法都加了synchronized关键字   2)Vector的本质是一个数组,特点能是能够自动扩增...,扩增的方式跟capacityIncrement的值有关   3)它也会fail-fast,还有一个fail-safe两个的区别在下面的list总结中会讲到 4.2、Stack的总结   1)对栈的一些操作...也会发生fail-fast 5.3、fail-fast和fail-safe区别和什么情况下会发生   简单的来说:在java.util下的集合都是发生fail-fast,而在java.util.concurrent...3)为什么在java.util.concurrent包下对集合有结构的改变,却不会报异常?

58460

Java 集合深入理解(13):Stack

所有操作都是在顶部进行 有点像羽毛球筒: 栈通常有三种操作: push 入栈 pop 栈顶元素出栈,并返回 peek 获取栈顶元素,并不删除 我们自定义一个 栈 时只要实现上述三个主要操作即可,本文中将使用 Java...Java 集合框架中的栈 Stack Java 集合框架中的 Stack 继承自 Vector: 由于 Vector 有 4 个构造函数,加上 Stack 本身的一种,也就是说有 5 中创建 Stack...Stack 的方法 Stack 中新建的方法比较少: 1.构造函数 //构建一个空栈 public Stack() { } 2.入栈 //调用的 Vector.addElement() public E...return size() == 0; } Vector.size(): public synchronized int size() { return elementCount; } 总结 Java...Thanks https://docs.oracle.com/javase/8/docs/api/java/util/Stack.html http://www.cnblogs.com/kaituorensheng

961100
领券