我对编码很新,我试图通过使用Math.min和Math.max方法找到整数序列的最小值和最大值.我想我已经找到了大部分的东西,但是当我测试它时,最小值是-2147483648,最大值是2147483647.我怎么能改变它?
这是代码:
这是代码:
/** * A class to find largest and smallest values of a sequence. **/ public class DataSet { private int smallest = Integer.MIN_VALUE; private int largest = Integer.MAX_VALUE; /** * Adds in integer to sequence. * @param x the integer added */ public void addValue(int x) { smallest = Math.min(smallest,x); largest = Math.max(largest,x); } /** * Returns the smallest value. * @return the smallest value */ public int getSmallest() { return smallest; } /** * Returns the largest value. * @return the largest value */ public int getLargest() { return largest; } }
这是测试人员:
/** * A class to test the DataSet class. */ public class DataSetTester { public static void main(String[] args) { DataSet myData = new DataSet(); myData.addValue(11); myData.addValue(4); myData.addValue(6); myData.addValue(9); System.out.println("Smallest: " + myData.getSmallest()); System.out.println("Expected: 4"); System.out.println("Largest: " + myData.getLargest()); System.out.println("Expected: 11"); } }
解决方法
交换最小和最大的初始条件.更改
private int smallest = Integer.MIN_VALUE; private int largest = Integer.MAX_VALUE;
至
private int smallest = Integer.MAX_VALUE; private int largest = Integer.MIN_VALUE;
因为没有int值小于MIN_VALUE(或大于MAX_VALUE).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。