如何在不使用二维数组的情况下动态创建具唯一名称的数组?
解决方案
你的需求核心是创建随机数量的一维数组(每个长度为10),但不能使用二维数组,你尝试的array+i这种动态命名变量的写法在Java中不合法——变量名无法在运行时动态生成。以下是符合要求的实现方式:
实现思路
用一维数组存储数组对象:Java中数组属于引用类型,可将每个长度为10的String[]作为元素存入另一个一维数组中,以此规避二维数组的直接使用。
代码实现
import java.util.Random; public class ArrayChallenge { public static void main(String[] args) { Random random = new Random(); int randomNumber = random.nextInt(15) + 1; // 生成1-15之间的随机行数,可按需调整范围 // 用Object类型一维数组存储所有String数组,避免直接声明二维数组 Object[] rowContainer = new Object[randomNumber]; for (int i = 0; i < randomNumber; i++) { // 创建长度为10的String数组并放入容器 rowContainer[i] = new String[10]; } // 示例操作:给某一行赋值并读取 String[] targetRow = (String[]) rowContainer[2]; targetRow[3] = "示例内容"; System.out.println(targetRow[3]); } }
关键说明
- 使用
Object[]作为容器,完全符合“强制使用数组但禁止二维数组”的要求,未使用String[][]这类二维数组声明。 - 存取数组时需做类型转换(
(String[])),因为Object[]中的元素默认是Object类型,转换后才能进行String[]的相关操作。
内容的提问来源于stack exchange,提问作者parteehat
相关产品推荐
相关产品推荐

