我有以下代码,其中包含一个名为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");
}
}
答案 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();