如何在java上显示堆栈中的最大数字

时间:2018-01-10 19:58:44

标签: java stack

我有以下代码,其中包含一个名为stack的类和一个push方法 请问如何制作一个显示堆叠中最大(最大数字)数的方法?请帮我一个非常简单的代码我是初学者我不知道在java中只有5%

class stack1 {
    int maxsize,top;
    String arr[];
    int maxsize1;
    stack1 (int maxsize){
       this.maxsize=maxsize;
       arr=new String[maxsize];
       top=0;
    }
    void push (String data) {
       if (top<maxsize) {
          arr[top]=data;
          top++;
       } else {
          System.out.print("stack is overflow");
       }
    }
    public static void main(String arg[]) {
       stack1 s=new stack1(4);
       s.push("1");
       s.push("2");
       s.push("3");
       s.push("4");
    }
}

2 个答案:

答案 0 :(得分:0)

不要像现在一样使用String数组中的所有数字,而应使用整数数组(int[]),浮点数数组(float[])或不同种类的数字原始数据类型(您可以在Oracle Java tutorial上阅读更多相关信息)。

假设您为int[]数组arr命名,您可以创建一个循环遍历所有数字的方法,并存储将在函数末尾返回的最高值:

int maximumValue() {
  int maximum = Integer.MIN_VALUE;

  for (int value : arr) {
    if (value > maximum) {
      maximum = value;
    }
  }

  return maximum;
}

答案 1 :(得分:0)

这不是最有效的方式,但排序可以解决问题:

    Arrays.sort(stack);
    System.out.println(Arrays.asList(stack));
    System.out.println(stack[stack.length - 1]); //stack[stack.length - 1] is the max

您获得的排序将是词法,因为您正在使用字符串。要使用数字,您可以将堆栈更改为整数:

    String arr[]; becomes int arr[];
    void push (String data) becomes void push (int data)
    s.push("4") becomes s.push(4)

要获得最大值,您可以将此方法添加到您的班级:

int getMax() {
    Arrays.sort(arr);
    return arr[arr.length - 1];
}

然后你称之为:

int max = s.getMax();