ArrayList 取最大值 排序

这段代码展示了如何在ArrayList中查找最大值并使用Collections的max方法配合Comparator进行比较。程序初始化了一个包含浮点数的ArrayList,然后通过Collections.max找到最大值并打印。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class Num {
    /**
     * 注意Long和Double的范围区别
     */
    public static void main(String[] args) {
        List<Number> dataSet = new ArrayList<Number>();
        dataSet.add(2.5);
        dataSet.add(2.6);
        dataSet.add(2.4);
        dataSet.add(3.55959);
        dataSet.add(3.60051);
        dataSet.add(3.499999);

//逐个比较
//      Number maxNum = dataSet.get(0);
//      for (int i=1;i<dataSet.size();i++){
//          if (maxNum.doubleValue() < dataSet.get(i).doubleValue()) {
//              maxNum = dataSet.get(i);
//          }
//      }

//用Collections中的方法(max,sort)
        Number maxNum = (Number) Collections.max(dataSet, new Comparator() {
            public int compare(Object o1, Object o2) {
                Double num = Double.parseDouble(o1.toString()) - Double.parseDouble(o2.toString());
                if (num >0) {
                    return 1;
                } else if (num <0) {
                    return -1;
                } else {
                    return 0;
                }
            }
        });
       System.out.print(maxNum);

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值