【发布时间】:2019-01-14 15:10:00
【问题描述】:
我有以下双值列表:
items {9.0, 4.0, 16.0, -6.0, 5.0}
我想找到最大值和最小值,为此我做到了:
double max = items.stream().max(Comparator.comparing(String::valueOf)).get();
double min = items.stream().min(Comparator.comparing(String::valueOf)).get();
我得到的结果是max=9.0 和min=-6.0。我期望最大值为16.0。后来,我将16.0 更改为92.0 并且成功了;它给了我max=92.0
你知道怎么解决吗?
【问题讨论】:
-
问题是你在比较字符串并且
9xx总是大于1xxx。 -
你想使用
Double::valueOf,而不是String::valueOf。
标签: java java-8 java-stream comparator