用Java创建堆栈

时间:2017-12-24 06:58:16

标签: java stack

我想创建一个Integer堆栈。这样我就可以在主堆栈中推送一个新的整数堆栈。

如何创建它? 我为此完成了以下代码:

import java.util.*;
import java.io.*;

public class Containers{
    static Stack<Integer> subStack = new Stack<Integer>();
    static Stack<subStack> main  = new Stack<subStack>();
   public static int addToStatck(char cont){
       //for(int j=0;j<)
        return 0;
    }
    public static void main(){
        Scanner sc = new Scanner(System.in);
        String container = sc.next();
        Stack sub = new Stack();
        sub.push(container.charAt(0));
        main.push(sub);
        int ans = 0;
        for(int i=0;i<container.length();++i){
            ans+=addToStatck(container.charAt(i));
        }

    }

}

它显示以下输出: enter image description here

1 个答案:

答案 0 :(得分:3)

没有subStack类型(除非您创建此类型)。

main的类型应为:

static Stack<Stack<Integer>> main = new Stack<>();

对你的

似乎没什么用处
static Stack<Integer> subStack = new Stack<Integer>();

可变

此外,

Stack sub = new Stack();

应该是

Stack<Integer> sub = new Stack<>();

总结:

public class Containers{
    static Stack<Stack<Integer>> main = new Stack<>();
    public static int addToStatck(char cont){
        //for(int j=0;j<)
        return 0;
    }
    public static void main(){
        Scanner sc = new Scanner(System.in);
        String container = sc.next();
        Stack<Integer> sub = new Stack<>();
        sub.push(Integer.valueOf (container.charAt(0)));
        main.push(sub);
        int ans = 0;
        for(int i=0;i<container.length();++i){
            ans+=addToStatck(container.charAt(i));
        }   
    }  
}