gpt4 book ai didi

java - 流 min 不工作有时返回最大值而不是最小值

转载 作者:行者123 更新时间:2023-12-02 09:18:36 25 4
gpt4 key购买 nike

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;

public class GetMiles {
public static void main(String args[]) {
List<Student> studentList = new ArrayList<>();
Student s = new Student();
s.setFee("12000");
studentList.add(s);
Student s1 = new Student();
s1.setFee("3000");
studentList.add(s1);
Optional<Student> optionalStudent =
studentList.stream().min(Comparator.comparing(Student::getFee));
if (optionalStudent.isPresent()) {
System.out.println(optionalStudent.get().getFee());
}
}
static class Student {
private String fee;
public String getFee() {
return this.fee;
}
public void setFee(String fee) {
this.fee = fee;
}
}
}

在上面的示例中,它应该返回 3000,但如果我们给出 2000 和 3000,它会返回 12000,它也会返回 2000,在大多数情况下它工作正常,但不适用于所有情况。

最佳答案

将映射解析为列表中的 int,然后获取最低费用,如下面的示例代码:

Optional<Integer> optionalVal = studentList.stream().map(l -> 
Integer.parseInt(l.getFee())).min(Comparator.comparingInt(k -> k));
if(optionalVal.isPresent()) {
String minFee = String.valueOf(optionalVal.get());
Optional<Student> studentObj = studentList.stream().filter(p ->
minFee.equals(p.getFee())).findFirst();
}

关于java - 流 min 不工作有时返回最大值而不是最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56126086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com