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

如何创建包含0-25随机排列元素的ArrayList?

生成0-25随机排列的ArrayList解决方案

嘿,这事儿其实很简单!既然你不在意效率只要求功能可用,我给你两个直接的方案,都能完美解决重复和随机排列的问题:

方案一:先填充再洗牌(推荐,逻辑清晰且效率也不差)

思路很直观:先把0到25按顺序放进ArrayList,然后通过随机交换元素的方式打乱顺序,这样既不会有重复,又能保证每个位置都是随机的。

如果你想用Math.random()手动实现洗牌,代码可以这么写:

import java.util.ArrayList;

public class RandomNumberList {
    public static void main(String[] args) {
        ArrayList<Integer> randomList = new ArrayList<>();
        
        // 第一步:把0-25全部加入列表
        for (int i = 0; i <= 25; i++) {
            randomList.add(i);
        }
        
        // 第二步:手动洗牌,用Math.random()生成随机索引交换元素
        for (int i = randomList.size() - 1; i > 0; i--) {
            // 生成0到当前索引i的随机整数,确保每个元素都有机会被交换
            int randomPos = (int) (Math.random() * (i + 1));
            
            // 交换当前元素和随机位置的元素
            int temp = randomList.get(i);
            randomList.set(i, randomList.get(randomPos));
            randomList.set(randomPos, temp);
        }
        
        // 输出结果
        System.out.println("随机排列的列表:" + randomList);
    }
}

如果嫌手动写麻烦,也可以直接用Java自带的Collections.shuffle()方法,它底层也是基于随机数实现的,代码更简洁:

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

public class RandomNumberList {
    public static void main(String[] args) {
        ArrayList<Integer> randomList = new ArrayList<>();
        
        for (int i = 0; i <= 25; i++) {
            randomList.add(i);
        }
        
        // 一行代码完成洗牌
        Collections.shuffle(randomList);
        
        System.out.println("随机排列的列表:" + randomList);
    }
}

方案二:逐个生成随机数并去重(最直白的思路)

这个方法完全贴合你提到的用Math.random()的需求,逻辑超级简单:不断生成0-25的随机数,检查是否已经在列表里,不在就加进去,直到列表填满26个元素。虽然效率不如洗牌法,但你不在意效率的话,这个方案最容易理解。

代码示例:

import java.util.ArrayList;

public class RandomNumberList {
    public static void main(String[] args) {
        ArrayList<Integer> randomList = new ArrayList<>();
        
        // 直到列表里有26个元素为止
        while (randomList.size() < 26) {
            // 生成0-25的随机整数
            int randomNum = (int) (Math.random() * 26);
            
            // 如果列表里没有这个数,就添加进去
            if (!randomList.contains(randomNum)) {
                randomList.add(randomNum);
            }
        }
        
        System.out.println("随机排列的列表:" + randomList);
    }
}

这两个方案都能满足你的需求,随便选一个用就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:21:23