Java中的Stack capacity()方法示例
在Java语言中,Stack类是一个继承自Vector类的子类。同样地,这个类是一个实现了后进先出(LIFO)栈的数据结构。其中,Stack类的capacity()方法可以获取这个Stack对象的容量。
Stack类的常用方法
在使用Stack类之前,先看看它的常用方法。
- push(Object obj):把obj压入栈顶。
- pop():将栈顶的对象弹出,并返回这个栈顶对象。
- peek():返回栈顶的对象,但是不将它弹出。
- empty():判断堆栈是否为空。
- search(Object obj):在堆栈中查找obj的位置,如果没找到,则返回-1。
capacity()方法的示例
Stack类中的capacity()方法可以获取这个Stack对象的容量大小,也就是它在内存中可以占用的空间的大小。下面是一个简单的示例代码:
import java.util.Stack;
public class StackCapacityExample {
public static void main(String[] args) {
Stack<String> stack = new Stack<String>();
stack.push("Hello,");
stack.push("world!");
// 获取Stack对象的容量大小
int capacity = stack.capacity();
System.out.println("当前Stack对象的容量大小: " + capacity);
}
}
上述代码创建了一个String类型的Stack对象,并将字符串“Hello,”和“world!”分别压入栈顶。然后,我们通过capacity()方法获取这个Stack对象的容量大小,并将结果打印到屏幕上。
当你运行这个程序后,它会输出以下内容:
当前Stack对象的容量大小: 10
其实,当你创建一个新的Stack对象时,它的容量就是10。这意味着,我们在压入超过10个元素时,它会自动扩容,并且容量会自动增加。
接下来,让我们进一步展示如何使用pop()方法和empty()方法,来演示Stack类的其他常用方法。
import java.util.Stack;
public class StackCapacityExample {
public static void main(String[] args) {
Stack<String> stack = new Stack<String>();
stack.push("Hello,");
stack.push("world!");
// 使用peek()方法获取栈顶元素
String str = stack.peek();
System.out.println("栈顶元素为:" + str);
// 使用pop()方法将栈顶元素出栈
String popStr = stack.pop();
System.out.println("弹出的栈顶元素为:" + popStr);
// 判断Stack对象是否为空
boolean isEmpty = stack.empty();
System.out.println("Stack对象是否为空:" + isEmpty);
}
}
上述代码可输出以下结果:
栈顶元素为:world!
弹出的栈顶元素为:world!
Stack对象是否为空:false
在这个示例中,我们用peek()方法获取了当前栈顶的元素,用pop()方法将当前栈顶的元素弹出,并将结果打印到屏幕上。最后,我们用empty()方法来判断这个Stack对象是否为空。
结论
Stack类是Java编程语言中的一个数据结构,它是一个实现了后进先出(LIFO)栈的数据结构。使用Stack类时,可以利用其常用方法,进行元素入栈、出栈、获取栈顶元素和判断Stack对象是否为空等操作。其中,capacity()方法可以获取一个Stack对象的容量大小,即在内存中占用的空间的大小。特别需要注意的是,当我们在压入超过10个元素之后,它会自动扩容,并且容量会自动增加。