错误:未为参数类型定义<运算符 双精度[],双精度



我知道这是相当基本的,但我有困难理解使用<时测试对象在数组

我想测试存储在二维数组中的ruleGradesminimum (double),然后将其与probability (double)相乘。

ArrayList<Double[][]> ruleGrades  = new ArrayList<Double[][]>();
ArrayList<Double> min= new ArrayList<Double>();
double minimum;
System.out.println("Rule Grades: "+ruleGrades.toString());
        for(int a=0;a<ruleGrades.size();a++)
        {
            minimum=2.0;
            System.out.println("A: "+a);
            for(Double[] grades : ruleGrades.get(a))
            {
                if(grades<minimum) //error over here
                {
                    Double prob=rule.getRules().get(a).getProbability();
                    minimum=grades.doubleValue()*prob.doubleValue(); //error  
                }
            }
            min.add(minimum);
        }
        max=0.0; //finding largest
        for (int b = 0; b< min.size(); b++ )
        {
            if( min.get(b) > max)
            {
                max = min.get(b);
            }
        }
    }

更新:

好的,我看到我不需要一个多维数组,我可以使用Double[]在第一个元素中有2个值。下面是我更新后的代码:

ArrayList<Double[]> ruleGrades  = new ArrayList<Double[]>();
ArrayList<Double[]> min= new ArrayList<Double[]>();

System.out.println("Rule Grades: "+ruleGrades.toString());
        for(int a=0;a<ruleGrades.size();a++)
        {
            Double [] minimum={2.0,2.0};
            System.out.println("A: "+a);
            for(Double grades : ruleGrades.get(a))
            {
                if(grades<minimum[0])
                {
                    Double prob=rule.getRules().get(a).getProbability();
                    minimum[0]=grades.doubleValue()*prob.doubleValue();
                }
                if(grades<minimum[1])
                {
                    Double prob=rule.getRules().get(a).getProbability();
                    minimum[1]=grades.doubleValue()*prob.doubleValue();
                }
            }
            min.add(minimum);
        }
        Double [] max= {0.0,0.0}; //finding largest
        for (int b = 0; b< min.size(); b++ )
        {
            for(Double mins : min.get(b))
            {
                if( mins> max[0])
                {
                    max = min.get(b);
                }
            }   
        }
    }

在我的第一个IF语句中,我想检查第一个双精度数是否小于2.0,然后乘以概率,然后将其添加到数组列表min中。

但是对于同一元素中的第二个值,我该怎么做呢?例如ruleGrades包含:[1.7,1.9],[1.2,1.3]....然后我用1.7乘以prob(假设它是1)并加上min数组列表中的Double[],所以min看起来像这样[1,7]。但然后我希望1.9相同,并将其放在与1.7相同的元素中,那么最小数组将看起来像[1.7,1.9]。这就是为什么我添加了另一个IF语句,这是正确的吗?

在所有的分数都乘以probb并加入到min数组列表后,我需要找到最大的一个。所以我做了一个Double max[],对吗?

对不起,我正在努力阅读,但我真的很困惑。谢谢大家的帮助。

实际上你已经在内部for循环中声明了数组,并将整个数组与单个双精度值进行比较。

grades < minimum是问题

for(Double[] grades : ruleGrades.get(a))
{
    if(grades is an array of Double < minimum is a double )  //error over here
     {

相关内容

  • 没有找到相关文章

最新更新