「javastack语法」javastack类
本篇文章给大家谈谈javastack语法,以及javastack类对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java中Stack的问题
- 2、java里Stack类怎么用啊?
- 3、java中的“堆栈”是什么意思?
- 4、用一维整数数组实现数据结构中的堆栈(Stack)。(用java语言)
- 5、java 中Stack的使用?
- 6、关于JAVA中的Stack.pop()
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;
}
}
java里Stack类怎么用啊?
如下示例代码
//Create the Stack instance and add a couple of elements to it
Stack stack = new Stack();
String s1 = "element 1";
String s2 = "element 2";
stack.push(s1);
stack.push(s2);
现在栈中有两个元素,栈顶应该是element 2,我们可以通过peek方法看栈顶的元素:
System.out.println(stack.peek());
输出:
element 2
要看element 1的位置需要使用search方法:
//Find position of a certain element
int pos = stack.search("element 1");
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
java中的“堆栈”是什么意思?
堆栈是计算机为程序分配的内存空间,用来存储数据的。
内存是计算机系统中一个主要部件, 用于保存进程运行时的程序和数据,也称可执行存储器。在计算机中,内存空间一般是指主存储器空间(物理地址空间)或系统为一个用户程序分配内存空间。扩展内存空间的方法一般有增加内存大小和虚拟内存。
源程序经过汇编或编译后再经过链接编辑程序加工形成的程序的装配模块,及转换为相对地址编址的模块,它是以0为基址顺序进行编址的。
相对地址也称为逻辑地址或虚拟地址,把程序中由相对地址组成的空间叫做逻辑地址空间。相对地址空间通过地址再定位机构转换到绝对地址空间,绝对地址空间也叫物理地址空间。
内存空间一般是指主存储器空间(物理地址空间)或系统为一个用户程序分配内存空间。系统为一个用户程序分配内存空间方法有单一连续分配、固定分区分配、动态分区分配以及动态重定位分区分配四种方式。
为了便于内存分配,通常将分区按大小进行排队,并为之建立一张分区使用表,其中各表项包括每个分区的起始地址、大小及状态(是否已分配)。
当有一用户程序要装入时,由内存分配程序检索该表,从中找出一个能满足要求的、尚未分配的分区,将之分配给该程序,然后将该表项中的状态置为“已分配” ;若未找到大小足够的分区,则拒绝为该用户程序分配内存。
用一维整数数组实现数据结构中的堆栈(Stack)。(用java语言)
public class IntStack {
private int[] stack;
private int top;
/**
*初始化栈,传入一个非负的整数,否则抛出一个错误
*/
public IntStack(int size) throws StackErrorException{
if(size0){
throw new StackErrorException("错误的大小");
}
init(size);
}
private void init(int size) {
stack = new int[size];
top = 0;
}
/**
*判断栈是否为空,true则为空,反之则反
*/
public boolean isEmpty(){
return top==0;
}
/**
*判断栈是否已满,true则已满,反之则反
*/
public boolean isFull(){
return top==stack.length;
}
/**
*向栈顶添加元素,满则抛出异常
*/
public void push(int value) throws StackErrorException{
if(isFull()){
throw new StackErrorException("栈已满");
}
stack[top++] = value;
}
/**
*移除栈顶元素并返回,空则抛出异常
*/
public int pop() throws StackErrorException{
if(isEmpty()){
throw new StackErrorException("已到栈底!");
}
return stack[--top];
}
/**
*返回栈顶元素,空则抛出异常
*/
public int peek() throws StackErrorException{
if(isEmpty()){
throw new StackErrorException("已在栈底!");
}
return stack[top-1];
}
/**
*返回栈大小
*/
public int size(){
return stack.length;
}
class StackErrorException extends Exception{
public StackErrorException(String msg) {
super(msg);
}
}
}
java 中Stack的使用?
使用时,要先创建一个实例,如Stack st=new Stack();st.empty()方法是测试堆栈是否为空st.peek()查看栈顶对象而不移除它st.pop()移除栈顶对象并作为此函数的值返回该对象st.push(E item) 把项压入栈顶st.search(Object o) 返回对象在栈中的位置,以 1 为基数
关于JAVA中的Stack.pop()
在JAVA中,把String当做了一个非常基本的数据类型,以至于任何类型都可以转化为String
不知道你听没听过这句话:万物皆对象
在JAVA里所有的类都是继承自OBJECT类,而OBJECT类中有一个方法是toString()就是返回改OBJECT的字符表示,下面是JDK中的源码
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
还有就是在JAVA中如果遇到了将一个类软化为String时,这个类会自动调用toString()方法
如
class Test{
String name;
public String toString(){
return "aaaa";
}
}
public class Test1 {
public static void main(String[] args) {
System.out.println(new Test());
}
}
运行将输出"aaaa"
javastack语法的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于javastack类、javastack语法的信息别忘了在本站进行查找喔。
发布于:2022-11-25,除非注明,否则均为
原创文章,转载请注明出处。