Java从数组生成随机值时输出Random对象地址的解决求助
问题解决:从数组生成随机值却输出Random对象地址
你代码里的核心错误是直接打印了Random对象本身,而非用生成的随机索引去获取目标数组的元素——完全不需要重写任何类,修正打印逻辑就能解决问题。
问题代码的关键问题
- 你已经通过
numberOnSuite.nextInt(11)生成了数组索引m,但没用来访问suiteNumber数组,反而调用numberOnSuite.toString(),这才输出了对象的内存地址。 - 没必要创建两个
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
相关产品推荐
相关产品推荐

