(1)附录1中的类是一个存储String类对象的栈,请将其改造为泛型类GenericStack,该类支持存储泛型类对象的元素。
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.isEmpty();
}
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());
}
}
}
您好,能不能简单的解释一下大概思路
追答其实挺简单的,自带的StringStack本身就已经实现了存储String类型的元素列表的功能
那么剩下的就是不限制元素类型,把原本的类型限制String改为题目需要的泛型就可以了
T是java中的泛型关联字,可以在创建类的时候通过class的形式定义
所以原先不存在泛型的,第一行改为StringStack,让这个类引入泛型
之后下面的所有方法都可以使用T来指代上面的T,也就是将来创建时指定的类
使用方法的话,其实就是StringStack sstack=new StringStack();
将String作为泛型指定的类型传入
需要指定其他元素的存储类的话,创建时String改为其他类型就可以了
好的谢谢!