public class VitalCompare implements Comparator<VitalReportsDetails> {
@Override
public int compare(VitalReportsDetails vitalReportsDetails, VitalReportsDetails t1) {
int n1 = Integer.parseInt((vitalReportsDetails.getValue().equals("") ? "0" : vitalReportsDetails.getValue()));
int n2 = Integer.parseInt((t1.getValue().equals("")? "0" : t1.getValue()));
if (n1 >= n2) {
return 1;
}
return -1;
}
}
调用是这样的:如何解决java.lang.NumberFormatException:无效INT: “”
int min=Integer.parseInt(Collections.min(listOfData, new VitalCompare()).getValue());
logcat的
8-07 11:17:49.604 27972-27972/com.cognistrength.caregiver E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.cognistrength.caregiver, PID: 27972
java.lang.NumberFormatException: Invalid int: ""
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parseInt(Integer.java:358)
at java.lang.Integer.parseInt(Integer.java:334)
at com.cognistrength.caregiver.adapters.VitalGraphAdapter.onBindViewHolder(VitalGraphAdapter.java:123)
at com.cognistrength.caregiver.adapters.VitalGraphAdapter
只是抛出这里......为什么'vitalReportsDetails.getValue()'一个'字符串'而不是'整数'? –
比较器用于对数据进行排序,但不会更改它们。 – 2017-08-07 05:34:11
此外,当两个值相同时,您的“比较器”需要返回“0”。你的不是。 –