我在查找列表中的最大项目时遇到问题!假设我有一个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;! 在这个逻辑中有什么问题可以让任何人弄清楚我的错误,我在最后几个小时感到困惑谢谢
答案 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);
我还建议你以后使用标准List
类ArrayList
。