【问题标题】:Quick & Easy: why won't this run?快速简单:为什么不运行?
【发布时间】:2015-06-01 22:58:27
【问题描述】:
//markParse is an Integer ArrayList
//ii is the number of elements in markParse
//analysis is a textArea in the program's design

int max = java.util.Collections.max(markParse);
int min = java.util.Collections.min(markParse);
int range = max - min;
int average = sumData/ii;

analysis.setText("Avg: " + average);
analysis.append("Max: " + max);
analysis.append("Min: " + min);
analysis.append("Range: " + range);

希望这是足够的代码,因为它是我的程序中唯一有错误的部分。当我运行我的程序时,这部分会计算并显示数组列表中的最大值/最小值、平均值和范围。它应该在我单击按钮时实现(包含此代码);但是,什么也没有发生。

我相当肯定它与 java.util.Collections 语句有关,但我不确定。请更正和/或解释。

【问题讨论】:

  • 您是否尝试过在调试器中单步执行此代码?您确定您的按钮实际上正在调用此代码吗?
  • 我更改了代码,所以它会简单地打印“dog”并且它可以工作。所以按钮工作正常。

标签: java arrays parsing netbeans collections


【解决方案1】:

您还必须将null 作为第二个参数传递给方法:

int max = java.util.Collections.max(markParse, null);
int min = java.util.Collections.min(markParse, null);

【讨论】:

  • 好吧,我被难住了 - 为什么会有所作为?如果null 被传递给Collections.min(coll, comp),它唯一做的就是返回Collections.min(coll)。进行此更改似乎没有任何效果(如果您的List 实际上不是List<T extends Comparable<? super T>>,则除了处理编译问题。
猜你喜欢
  • 2019-01-11
  • 2015-10-27
  • 2011-08-27
  • 2012-03-29
  • 2015-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多