java的stack
1. java里的stack作用是什么
stack是java里的一个集合类,用于模拟一个堆栈,存放的信息是后进的元素先出
2. java中Stack的问题
闲着实在无聊......
写了个简单的双链表实现Stack。未引用任何包。
public class Main {
public static void main(String[] args) {
Stack s = new Stack();
s.put("abc");//压栈
s.put("def");//压栈
s.put("ghi");
System.out.println(s.pop());//出栈
System.out.println(s.isEmpty());//判断栈是否为空
System.out.println(s.pop());
System.out.println(s.isEmpty());
System.out.println(s.pop());
System.out.println(s.isEmpty());
}
}
class Stack {
private Node root = new Node();
private Node top = root;
public Object pop() {
if(top != null) {
Object value = top.getValue();
top = top.getPrevious();
return value;
} else {
return null;
}
}
public void put(Object value) {
Node n = new Node(top, value);
top.setNext(n);
top = n;
}
public boolean isEmpty() {
return top.getPrevious() == null;
}
}
class Node {
private Node next;
private Object value;
private Node previous;
public Node() {
}
public Node(Node previous, Object value) {
this.previous = previous;
this.value = value;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
public Node getPrevious() {
return previous;
}
public void setPrevious(Node previous) {
this.previous = previous;
}
}
3. java中stack什么意思
stack 就是堆栈啊,它应该算是一个容器,用来存储东西的,他具有先进后出、后进先出的原理!
4. java里Stack类怎么用啊
如下示例代码
//
Stackstack=newStack();
Strings1="element1";
Strings2="element2";
stack.push(s1);
stack.push(s2);
现在栈中有两个元素,栈顶应该是element 2,我们可以通过peek方法看栈顶的元素:
System.out.println(stack.peek());
输出:
element 2
要看element 1的位置需要使用search方法:
//Findpositionofacertainelement
intpos=stack.search("element1");
System.out.println(pos);
上面代码将输出:
2
要移除栈顶的元素应该用pop()方法:
System.out.println(stack.pop());
System.out.println(stack.pop());
输出:
element 2
element 1
在上一步中栈中的两个元素都被pop了,现在我们看下empty()方法是否返回true
System.out.println(stack.empty());
输出:
true
5. stack在java的哪个类中
java.util.Stack 在 jdk java.util 包里来面, 也是 java 集合框架的源重要组成部分
Stack是一个后进先出(last in first out,LIFO)的堆栈,在Vector类的基础上扩展5个方法而来
Epush(Eitem) 把项压入堆栈顶部。
Epop() 移除堆栈顶部的对象,并作为此函数的值返回该对象。
Epeek() 查看堆栈顶部的对象,但不从堆栈中移除它。
booleanempty() 测试堆栈是否为空。
intsearch(Objecto) 返回对象在堆栈中的位置,以1为基数。
6. java的栈stack 怎么查看所有的元素
java.util.Stack 类的构造方法创建对象
这个类里面有这个方法
public peek() 查看栈顶对象而不移除它。。
点赞我 哟
7. java中stack的应用
stack是一个先进后的结构,
jdk1.5开始可以用泛型来定义stack吧
表达式求值算是一个基本的应用了
8. java 中Stack的使用
使用时,要先创建一个实例,如Stack st=new Stack();st.empty()方法是测试堆栈是否为空st.peek()查看栈顶对象而不专移属除它st.pop()移除栈顶对象并作为此函数的值返回该对象st.push(E item) 把项压入栈顶st.search(Object o) 返回对象在栈中的位置,以 1 为基数
9. 关于JAVA中的Stack.pop()
1、
Object是java里面所有来类的超类,而自Object中有一个方法叫toString(),所以java中所有类都会有这个方法。
x=x+s.pop();
这里s.pop()是一个Object类型的对象,当其与String相“+”时,系统会自动调用Object的toString()方法将其转成String表示。
例如,假如你重载toString方法:
class MyObject{
public String toString(){//重载方法
return "This is class MyObject.";
}
}
那么
MyObject obj = new MyObject();
System.out.println(obj);
System.out.println(obj.toString());这两句实质上是一样的。
2、另外,根据jdk1.6泛型的标准,你所使用的Stack类型是有问题的,应该为:
Stack<String> stack = new Stack<String>();
这样,你push入去的和pop出来的都是String类型而不会是其他类型了。
^_^