You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建含随机数的arraylist并按least to greatest排序

随机数ArrayList的升序(从小到大)排序实现

核心实现逻辑

不需要手动实现排序算法,直接借助Java集合框架的内置能力分两步完成:

  • 构造阶段:因为ArrayList不支持直接存储int、double等基本类型,随机数需要存入Integer、Double等对应包装类再加入列表
  • 排序阶段:对实现了自然比较逻辑的数值列表,直接调用官方排序API,默认就是从小到大的升序规则

可直接运行的示例代码

import java.util.ArrayList;
import java.util.Random;
import java.util.Collections;

public class SortRandomList {
    public static void main(String[] args) {
        // 初始化空的ArrayList
        ArrayList<Integer> randomList = new ArrayList<>();
        Random random = new Random();

        // 循环生成指定数量的随机数(示例为10个0-100的整数)存入列表
        for (int i = 0; i < 10; i++) {
            randomList.add(random.nextInt(101));
        }
        System.out.println("排序前列表:" + randomList);

        // 执行从小到大(least to greatest)的升序排序
        Collections.sort(randomList);
        System.out.println("排序后列表:" + randomList);
    }
}

扩展写法与注意事项

  • Java 8及以上版本可使用流式API完成等价排序,效果与Collections.sort()完全一致:
    randomList = randomList.stream()
                            .sorted()
                            .collect(ArrayList::new, ArrayList::add, ArrayList::addAll);
    
  • 对于Integer、Double、Long等内置数值包装类,Collections.sort()默认就是按自然升序(从小到大)规则排序,不需要额外传入比较器
  • 注意Collections.sort()是原地排序方法,会直接修改原ArrayList的元素顺序,不会生成新的列表对象
  • 如果列表存储的是自定义数值类,没有内置自然比较逻辑,需要在排序时传入升序比较器,示例:
    // 自定义类按内部存储的数值字段升序排序
    list.stream()
        .sorted((a, b) -> Double.compare(a.getNumValue(), b.getNumValue()))
        .toList();
    
  • 性能说明:Collections.sort()底层是优化后的归并排序实现,对ArrayList的随机访问特性做了适配,排序时间复杂度为O(n log n),常规业务场景下无性能瓶颈

内容的提问来源于stack exchange,提问作者Bradley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.24 22:36:09