有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Java中创建堆栈

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

如何创建它? 我为此编写了以下代码:

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) 个答案

  1. # 1 楼答案

    没有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));
            }   
        }  
    }