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

如何在Processing Java的void setup()中定义数组?

Processing中函数内初始化数组的正确方法

一维数组的正确初始化方式

你之前在setup()里直接用array = {"String"}赋值会报错,是因为{...}这种数组初始化语法只能在变量声明的同时使用。要在函数内给已声明的数组赋值,必须配合new 类型[]:

// 全局声明数组
String[] strArray;
PImage[] imgArray; // 用于存储加载的图片

void setup() {
  size(600, 400);
  
  // 直接初始化一维数组
  strArray = new String[]{"Hello", "Processing"};
  
  // 结合loadImage初始化图片数组(符合loadImage需在setup内调用的要求)
  imgArray = new PImage[]{
    loadImage("image1.jpg"),
    loadImage("image2.png")
  };
}

你提到的先指定长度再逐个赋值的方式也可行,但上面的写法更简洁高效。

二维数组的正确初始化方式

同理,二维数组在函数内赋值时,也需要配合new 类型[][]:

方式1:直接初始化元素

int[][] int2DArray;

void setup() {
  // 直接初始化二维数组的所有元素
  int2DArray = new int[][]{
    {1, 3, 5},
    {2, 4, 6},
    {7, 8, 9}
  };
}

方式2:先指定长度再逐个赋值

如果需要动态定义二维数组的内容,可以先指定行数和列数,再逐个赋值:

int[][] int2DArray;

void setup() {
  // 创建3行3列的二维数组
  int2DArray = new int[3][3];
  
  // 逐个赋值
  int2DArray[0][0] = 1;
  int2DArray[0][1] = 3;
  int2DArray[0][2] = 5;
  int2DArray[1][0] = 2;
  // ... 其余元素以此类推
}

关键说明

{...}这种简化的初始化语法仅适用于变量声明与赋值同时进行的场景,比如:

int[] array = {1, 3, 5}; // 合法,声明时直接初始化

但当数组已经单独声明后,必须用new 类型[]/new 类型[][]的完整语法来完成赋值操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 20:25:20