首页 > 解决方案 > 按双精度对对象数组进行排序并具有特定的字符串值

问题描述

所以,我有这段代码用于对 object 数组进行排序:

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()));
}

结果只是排序中的最高数字。但我需要的是具有特定字符串值的最高 Double 值,例如:

banding.getJenis().equals("example")

请帮忙,我真的需要这个。谢谢

PS。也许我不够清楚。所以我的意思是我正在寻找最高值,但该值并不高于用户设置的限制。所以我的意思是字符串是限制和总计算值之间的比较。字符串必须值“足够”和“溢出”

标签: javaarrayssorting

解决方案


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

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

推荐阅读