0

我正在构建一个以十进制数数组和十进制阈值作为参数的方法。该方法应输出列表中大于阈值的所有数字。

我的计划是执行一个 for 循环并检查数组中的每个数字,如果该数字 (i) 大于阈值 (x),则附加到我的结果列表中。我的问题是我无法添加/追加到结果列表中。

System.out.println("Nothing here");只是想帮我看看它是否真的通过了 for 循环,但我的 IDE 说调用list.add(a[i]);是错误的。我是一个初级程序员,不知道如何解决这个问题。这是我的代码:

public class a10 {

    public static void main(String[] args) {
        double a[] = {42, 956, 3,4};
        threshold(a, 2);
    }

    public static void threshold(double[] a, double x){
        double list[] = {};

        for (double i:a){
            if (i<22){
                list.add(a[i]);
            }else{
                System.out.println("Nothing here");
            }
    }
}
4

2 回答 2

3

您的列表实际上是一个数组 ( double[]),它不是具有方法的对象add。您应该将其视为常规数组(在您的情况下,您已初始化为空数组,这意味着您不能在其中设置任何元素)。

您应该做的是使用 Lis 的实际实现(例如 an ArrayList),然后您可以实际使用该add方法:

 List<Double> result = new ArrayList<Double>();
 for (double i:a){
      if (i>x){ 
          list.add(a[i]);
      }else{
          System.out.println("Nothing here");
      }
 }

另请注意,您已经硬编码了数字“22”(您应该使用x

于 2012-11-25T15:02:14.877 回答
0

Java中没有add数组的方法。您应该将列表声明为:

List<Double> list = new ArrayList<Double>(); //or some other type of list
于 2012-11-25T15:02:15.457 回答