import java.util.*; import javax.swing.*; public class Max { static void largest(ArrayList<Integer> a,int length) { if(a==null) { System.out.println("empty array"); } else { Integer[] a1=new Integer[a.size()]; a1=(Integer[])a.toArray(a1); int i,max=a1[0]; for(i=0;i<(length);i++) { if(a1[i]>max) { max=a1[i]; } } System.out.println("max "+max); } } public static void main(String args[]) { ArrayList<Integer> a=new ArrayList<Integer>(); while(true) { String b=JOptionPane.showInputDialog("请输入需要比较大小的数(以0结束)"); try { Integer.parseInt(b); } catch(NumberFormatException e) { System.out.println("输入有误"); System.exit(1); } int b1=Integer.parseInt(b); if(b1==0) { break; } else { a.add(b1); } } largest(a,a.size()); } }
采用集合使得用户可以随意输入数值,缺点是不能比较0在数组中的大小,目前还没有思路。
截图:
这里的测试数据分别是:
0 1 2 3 4 5(正数顺序)
-3 -2 -1 0 1 2(正负数顺序)
5 4 3 2 1 0(正数逆序)
0 4 4 5 5(重复数字)
-2 -498764 -1 487614(不规则大数)
尽皆输出了最大值
输入字母及符号时异常抛出提示