Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查找列表中的最大项_Java - Fatal编程技术网

Java 查找列表中的最大项

Java 查找列表中的最大项,java,Java,我在查找列表中的最大项时遇到问题!假设我有一张清单 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"

我在查找列表中的最大项时遇到问题!假设我有一张清单

 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));
double m=double.parseDouble(db_list.getItem(0.split)(\\s”)[0]);
int Loc=0;
对于(int i=0;im){
Loc+=1;
m=Double.parseDouble(db_list.getItem(i).split(“\\s”)[0]);
}
}
System.out.println(“最大值为:”+db_list.getItem(Loc));
因此,最大项目应为“0.7 100 C”!
这个逻辑有什么问题吗?有人能找出我的错误吗?我最近几个小时都很困惑。谢谢。我想你想要的是最大变量的位置,而不是找到一个较大值的次数

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);
static double firstValue(字符串s){
返回Double.parseDouble(s.split(\\s',2)[0]);
}
double max=firstValue(db_list.getItem(0));
int loc=0;
对于(int i=1;i最大值){
loc=i;
max=next;
}
}
System.out.println(“最大值为“+loc”处的“+max+”);

我还建议您以后使用标准的
列表
数组列表

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

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);
static double firstValue(字符串s){
返回Double.parseDouble(s.split(\\s',2)[0]);
}
double max=firstValue(db_list.getItem(0));
int loc=0;
对于(int i=1;i最大值){
loc=i;
max=next;
}
}
System.out.println(“最大值为“+loc”处的“+max+”);

我还建议您将来使用标准的
列表
数组列表

使用
比较器
,而不是将
Loc+=1
if
语句中删除
列表
?您是否编写了自己的名为
List
的类?使用
比较器,而不是将
Loc+=1
if
语句中取出
List
?你写过自己的类名为
List
?我想你的意思是
double-next=firstValue(db_-List.getItem(I))
我想你的意思是
double next=firstValue(db_list.getItem(I))