Java实现stack
时间: 2023-06-04 22:03:34 浏览: 118
好的,Java实现stack可以使用Java提供的Stack类,也可以使用LinkedList类来实现。下面是使用LinkedList实现stack的示例代码:
```
import java.util.LinkedList;
public class MyStack<T> {
private LinkedList<T> list;
public MyStack() {
list = new LinkedList<>();
}
public void push(T item) {
list.addLast(item);
}
public T pop() {
return list.removeLast();
}
public boolean isEmpty() {
return list.isEmpty();
}
public int size() {
return list.size();
}
}
```
这个示例代码实现了一个泛型的stack,可以存储任意类型的数据。push方法将数据添加到stack的末尾,pop方法从stack末尾取出数据并删除它,isEmpty方法判断stack是否为空,size方法返回stack中元素的个数。
相关问题
java实现stack并测试_JUnit3.8实现模拟堆栈的测试 | 学步园
好的,下面是Java实现stack并测试的步骤:
1. 创建一个Stack类,该类应该包含以下方法:
- push(Object obj): 将元素obj压入堆栈中
- pop(): 弹出并返回堆栈顶部的元素
- peek(): 返回堆栈顶部的元素,但不弹出它
- isEmpty(): 如果堆栈为空,则返回true,否则返回false
2. 使用JUnit3.8编写测试用例,测试Stack类中的所有方法。测试用例应该包含以下测试:
- 测试push()方法是否能够将元素正确地压入堆栈中
- 测试pop()方法是否能够弹出并返回堆栈顶部的元素
- 测试peek()方法是否能够返回堆栈顶部的元素,但不弹出它
- 测试isEmpty()方法是否能够正确返回堆栈是否为空的状态
下面是一个示例代码,可以参考一下:
Stack.java
```java
import java.util.ArrayList;
public class Stack {
private ArrayList<Object> stack = new ArrayList<Object>();
public void push(Object obj) {
stack.add(obj);
}
public Object pop() {
Object obj = stack.get(stack.size() - 1);
stack.remove(stack.size() - 1);
return obj;
}
public Object peek() {
return stack.get(stack.size() - 1);
}
public boolean isEmpty() {
return stack.isEmpty();
}
}
```
StackTest.java
```java
import junit.framework.TestCase;
public class StackTest extends TestCase {
private Stack stack;
protected void setUp() throws Exception {
super.setUp();
stack = new Stack();
}
protected void tearDown() throws Exception {
super.tearDown();
stack = null;
}
public void testPush() {
stack.push("Hello");
stack.push("World");
assertFalse(stack.isEmpty());
}
public void testPop() {
stack.push("Hello");
stack.push("World");
assertEquals("World", stack.pop());
assertEquals("Hello", stack.pop());
assertTrue(stack.isEmpty());
}
public void testPeek() {
stack.push("Hello");
stack.push("World");
assertEquals("World", stack.peek());
assertFalse(stack.isEmpty());
}
public void testIsEmpty() {
assertTrue(stack.isEmpty());
stack.push("Hello");
assertFalse(stack.isEmpty());
}
}
```
这是一个简单的实现,你可以根据自己的需求进行修改和扩展。希望对你有所帮助!
用java 泛型实现Java的stack类型
可以使用以下代码实现Java的stack类型:
```
import java.util.*;
public class MyStack<T> {
private LinkedList<T> list = new LinkedList<T>();
public void push(T item) {
list.addFirst(item);
}
public T pop() {
return list.removeFirst();
}
public boolean isEmpty() {
return list.isEmpty();
}
}
```
这里使用了LinkedList来实现栈的功能,通过泛型可以使得栈可以存储任意类型的数据。
阅读全文