在列表中查找最大项目

时间:2014-12-27 14:04:52

标签: java

我在查找列表中的最大项目时遇到问题!假设我有一个List

 List db_list=new List();
    db_list.add("0.5 150 A");

    db_list.add("0.3 120 B");

    db_list.add("0.1 250 C");
    db_list.add("0.7 100 C");

我希望找到列表中的最大项目:

    double m=Double.parseDouble(db_list.getItem(0).split("\\s")[0]);
    int Loc=0;
    for (int i = 0; i < db_list.getItemCount(); i++) {
        if (Double.parseDouble(db_list.getItem(i).split("\\s")[0])>m) {
            Loc+=1;
            m=Double.parseDouble(db_list.getItem(i).split("\\s")[0]);

        }
    }

    System.out.println("The Maximum is: "+db_list.getItem(Loc));

这样最大项目应为&#34; 0.7 100 C&#34;! 在这个逻辑中有什么问题可以让任何人弄清楚我的错误,我在最后几个小时感到困惑谢谢

1 个答案:

答案 0 :(得分:6)

我假设您想要最大变量的位置,而不是您找到更大值的次数。

Loc = i;

这是使用调试器可以帮助您在几分钟内找到问题的地方。

为了您的兴趣,可以这样写。

static double firstValue(String s) {
    return Double.parseDouble(s.split("\\s", 2)[0]);
}

double max = firstValue(db_list.getItem(0));
int loc = 0;
for (int i = 1; i < db_list.getItemCount(); i++) {
    double next = firstValue(db_list.getItem(i));
    if (next > max) {
        loc = i;
        max = next;
    }
}

System.out.println("The Maximum is: " + max + " at " + loc);

我还建议你以后使用标准ListArrayList