关于java中 Vector的子类Stack方法的问题

Stack<String>stack=newStack<String>();System.out.println("nowthestackis"+isEmpty(stac... Stack<String> stack = new Stack<String>();
System.out.println("now the stack is " + isEmpty(stack));
stack.push("1");
stack.push("2");
stack.push("3");
stack.push("4");
stack.push("5");
System.out.println("now the stack is " + isEmpty(stack));
System.out.println(stack.peek());
System.out.println(stack.pop());
System.out.println(stack.ElementAt(2));
System.out.println(stack.search("2"));
问:
1:请分别用白话详细讲下.peek() ,.pop(),ElementAt(2),search("2") 作用?
2:Stack泛型集合是不是可以实现例如:把10条评论放入Stack集合中 然后将最新的一条评论置顶 是否可以用Stack泛型实现呢?或有没有其他实现方式?
另外,看了下jdk帮助文档 :
public E pop()

移除堆栈顶部的对象,并作为此函数的值返回该对象。

返回:
堆栈顶部的对象(Vector 对象中的最后一项)。
其中这句:“堆栈顶部的对象(Vector 对象中的最后一项)。 ”是什么意思 ?Stack和Vector 对象有什么关系 或者是否可以说Stack继承了Vector的所有方法 然后可以通过Stack.pop()方法来操作Vector集合对象吗?
展开
 我来答
杜爷1号
2015-07-08 · 知道合伙人软件行家
杜爷1号
知道合伙人软件行家
采纳数:4973 获赞数:9186
毕业于福建农林大学,本科学士学位。从事IT行业3年,曾参与过多个大型项目的需求调研、软件研发。

向TA提问 私信TA
展开全部
  java.util.Stack 类是Vector的子类,Stack 类表示后进先出(LIFO)的对象堆栈。
  它通过五个操作对类 Vector 进行了扩展 ,允许将向量视为堆栈。它提供了通常的 push 和 pop 操作,以及取堆栈顶点的 peek 方法、测试堆栈是否为空的 empty 方法、在堆栈中查找项并确定到堆栈顶距离的 search 方法。
  首次创建堆栈时,它不包含项。
  Deque 接口及其实现提供了 LIFO 堆栈操作的更完整和更一致的 set,应该优先使用此 set,而非此类。例如:
  Deque<Integer> stack = new ArrayDeque<Integer>();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
韶华易逝终是空
2014-04-25 · 超过12用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:34.4万
展开全部
stack.peek():查看堆栈顶部的对象,但不从堆栈中移除它。
stack.pop(): 移除堆栈顶部的对象,并作为此函数的值返回该对象。
stack.elementAt(2):返回对象在堆栈中的位置,以 0 为基数(自下而上)
stack.search("2"):返回对象在堆栈中的位置,以 1 为基数。 (自上而下)

可以用泛型实现。stack.peek(),这个方法是很好使的。别的方法也是有的。你可以定去字符串数组什么的,取最后一条记录也可以。

栈是先进后出的,所以最后一项肯定在栈的顶部。但往Vector赋值的时候, 一般都是从小到大依次赋值。所以就是“堆栈顶部的对象(Vector 对象中的最后一项)”。

Stack继承了Vector类,所以他具有Vector的属性和方法。
追问
1:stack.pop(): 移除堆栈顶部的对象,并作为此函数的值返回该对象。 是什么意思 可否举个例子?

2:stack.elementAt(2):
stack.search("2"):

这两个方法的参数是访问的stack对象的下标吗?
追答
你上句不是写了吗?你打印一下长度就看出来了,移除就是把那个节点移走了。
System.out.println(stack.peek()); //查看堆栈顶部的对象,但不从堆栈中移除它。
System.out.println("--"+stack.size());
System.out.println(stack.pop()); //移除堆栈顶部的对象,并作为此函数的值返回该对象。
System.out.println("----"+stack.size());
这样一试你就看出来了。

stack.elementAt(2):返回对象在堆栈中的位置,以 0 为基数(自下而上)
stack.search("2"):返回对象在堆栈中的位置,以 1 为基数。 (自上而下)
我说的很清楚了吧。stack.elementAt(2),这个你可以当做下标来看(从栈底开始数),下标从0开始。stack.search("2"):得从后往前倒着数(及从栈顶开始数),并且从1开始。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式