将对象数组按双精度排序并具有特定的String值

时间:2018-12-09 18:51:51

标签: java arrays sorting

所以,我有这段代码可以对对象数组进行排序:

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”

1 个答案:

答案 0 :(得分:0)

您可以在排序之前或之后过滤数据。

List<bensin> examples = Arrays.stream(banding)
    .filter(o -> o.getJenis().equals("example"))
    .sorted(Comparator.comparing(bensin::getHarga))
    .collect(Collectors.toList());