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

如何在Android Studio中创建类似C#的结构体数组?

在Android Studio中实现C#结构体及其数组的等价写法

嘿,我来帮你搞定这个问题!在Android Studio常用的Java或Kotlin里,没有和C#完全一致的struct类型,但我们可以用**类/记录类(Java)或者数据类(Kotlin)**来实现等价的功能,创建数组的方式也很直观,下面分两种语言一步步演示:

Java 实现方式

1. 定义等价于C#结构体的类型

你可以用普通类来模拟C#的结构体,或者用Java 16+的记录类(更简洁,自带值类型相关的方法):

普通类写法

// 对应C#的factor结构体
public class Factor {
    // 和C#结构体的公共字段对应,你原代码里的door_lenth如果是笔误可按需调整
    public double door_lenth;
    public String current_model;
    public String current_number;

    // 可选:添加构造方法,方便快速初始化实例
    public Factor(double door_lenth, String current_model, String current_number) {
        this.door_lenth = door_lenth;
        this.current_model = current_model;
        this.current_number = current_number;
    }
}

记录类写法(Java 16+)

记录类会自动生成equals、hashCode、toString等方法,更贴近C#结构体的语义:

public record Factor(double door_lenth, String current_model, String current_number) {}

2. 创建结构体数组

创建数组的语法和C#非常相似,只是注意Java的数组初始化规则:

// 创建长度为100的Factor数组,初始元素均为null(Java对象数组默认值为null)
Factor[] myarr = new Factor[100];

// 可选:循环初始化数组中的每个元素
for (int i = 0; i < myarr.length; i++) {
    myarr[i] = new Factor(2.0, "ModelA", "SN-" + i);
}

Kotlin 实现方式

Kotlin的data class天生就适合模拟C#的结构体,语义和使用体验都非常接近:

1. 定义数据类

// 对应C#的factor结构体,data class自动处理值类型相关逻辑
data class Factor(
    var door_lenth: Double,
    var current_model: String,
    var current_number: String
)

2. 创建数组

Kotlin提供了多种数组创建方式,按需选择:

// 方式1:创建长度为100的可空Factor数组,初始元素为null
val myarr = arrayOfNulls<Factor>(100)

// 方式2:直接初始化所有元素(更简洁)
val myarr = Array(100) { index ->
    Factor(2.0, "ModelA", "SN-$index")
}

补充说明

C#的struct是值类型,而Java的类/Kotlin的数据类是引用类型,但在日常Android开发场景中,这种差异几乎不会影响你的使用需求。如果需要更接近值类型的特性,Kotlin的data class在比较、拷贝等操作上已经和C#struct的表现一致了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:37:52