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

Java从数组生成随机值时输出Random对象地址的解决求助

问题解决:从数组生成随机值却输出Random对象地址

你代码里的核心错误是直接打印了Random对象本身,而非用生成的随机索引去获取目标数组的元素——完全不需要重写任何类,修正打印逻辑就能解决问题。

问题代码的关键问题

  1. 你已经通过numberOnSuite.nextInt(11)生成了数组索引m,但没用来访问suiteNumber数组,反而调用numberOnSuite.toString(),这才输出了对象的内存地址。
  2. 没必要创建两个Random实例,单个实例就能生成所有需要的随机数,减少不必要的对象开销。

修正后的代码

import java.util.Random;

class RandomArray {
    public static void main(String[] args) {
        String suite[] = { "Clubs", "Diamonds", "Hearts", "Spades" };
        Object[] suiteNumber = {2, 3, 4, 5, 6, 7, 8, 9, "jack", "king", "queen"};
        
        // 只用一个Random实例即可
        Random random = new Random(); 
        int suiteIndex = random.nextInt(4);
        int numberIndex = random.nextInt(11); 
        
        // 用随机索引取数组元素,而非打印Random对象
        System.out.println(suiteNumber[numberIndex] + " " + suite[suiteIndex]);
    }
}

修正说明

  • 合并了两个Random实例为一个,简化代码结构。
  • 打印语句中用suiteNumber[numberIndex]替换原有的numberOnSuite.toString(),这样就能输出suiteNumber数组中对应随机索引的元素,而不是Random对象的内存地址。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 01:25:25