所以,我有这段代码可以对对象数组进行排序:
bensin[] banding=new bensin[7];
for (int i = 0; i < output.length; i++) {
banding[i] = new bensin(output[i].getJenis(),
output[i].getKetTotal(),
output[i].getHarga(),
output[i].getKapTotal(),
output[i].getMax());
}
@Override
public int compareTo(bensin o) {
if (this.harga < o.harga) {
return -1;
} else if (this.harga == o.harga) {
return 0;
} else {
return 1;
}
}
在主类中:
Arrays.sort(banding);
for (bensin o : banding) {
jTextField.setText(Double.toString(o.getHarga()));
}
结果仅是排序中的最高数字。 但是我需要的是具有特定String值的最高Double值:
banding.getJenis().equals("example")
请帮助,我真的需要这个。谢谢
PS。 也许我还不够清楚。所以我的意思是我正在寻找最高值,但该值不会高于用户设置的限制。因此,我要说的字符串是极限与总计算值之间的比较。字符串的值必须为“ ENOUGH”和“ OVERFLOWING”
答案 0 :(得分:0)
您可以在排序之前或之后过滤数据。
List<bensin> examples = Arrays.stream(banding)
.filter(o -> o.getJenis().equals("example"))
.sorted(Comparator.comparing(bensin::getHarga))
.collect(Collectors.toList());