StringStack . java package ch3; import java . util .*; public class StringStack ( private LinkedList < String > linkedList ; public StringStack )( linkedList = new LinkedList < String >(); public void push ( String name )( //将元素加入串行前端 linkedList . addFirst ( name ); public String top ()( //取得串行第一个元素 return linkedList . getFirst (; public String pop (){ //移出第一个元素 return linkedList . removeFirst (; public boolean isEmpty ()( //串行是否为空 return linkedList .isEmpty0; public static void main ( String ] args ){ StringStack sstack = new StringStack (); sstack . push (" first "); sstack . push (" second "); sstack . push (" third "); while (! sstack . isEmpty ())( System . out . println ( sstack . pop ());这段代码的类是一个存储 String 类对象的栈,请将其改造 为泛型类 GenericStack ,该类支持存储泛型类对象的元素。
时间: 2024-01-29 11:04:13 浏览: 112
下面是改造后的代码:
```
package ch3;
import java.util.LinkedList;
public class GenericStack<E> {
private LinkedList<E> linkedList;
public GenericStack() {
linkedList = new LinkedList<E>();
}
public void push(E element) {
linkedList.addFirst(element);
}
public E top() {
return linkedList.getFirst();
}
public E pop() {
return linkedList.removeFirst();
}
public boolean isEmpty() {
return linkedList.isEmpty();
}
public static void main(String[] args) {
GenericStack<String> sstack = new GenericStack<String>();
sstack.push("first");
sstack.push("second");
sstack.push("third");
while (!sstack.isEmpty()) {
System.out.println(sstack.pop());
}
}
}
```
在原有代码的基础上,我们将类名改为 `GenericStack<E>`,其中 `E` 表示元素类型,使用泛型来支持存储任意类型的元素。在构造函数和成员变量中,将 `LinkedList<String>` 改为 `LinkedList<E>`,表示使用泛型类型来存储元素。其余的方法也都使用泛型类型来定义参数和返回值。在 `main` 方法中,我们使用 `GenericStack<String>` 来实例化泛型类,表示存储的元素类型为 `String`。
阅读全文