将 2D 数组索引转换为 1D 索引

2023-12-21

我有两个用于国际象棋变体的数组,我正在用java编码...到目前为止,我有一个控制台版本,它将棋盘表示为一维数组(大小为32),但我正在为其制作一个GUI,我想要它显示为 4x8 网格,所以我有一个 JPanel 的二维数组...

问题是,考虑到它是一个 4x8 数组,是否有任何公式可以将 array[i][j] 索引转换为 array[i] ?


可以这样想:

您有一个恰好是一维数组的数组,它实际上只是二维数组的项目的长连接。

因此,假设您有一个大小为 5 x 3(5 行,3 列)的二维数组。我们想要制作一个一维数组。您需要决定是要按行连接还是按列连接,在本例中我们将说连接是按行连接。因此,每行有 3 列长,因此您需要将一维数组视为在 3 的“步骤”中定义。因此,一维数组的长度将为 5 x 3 = 15,现在您需要找到接入点。

因此,假设您正在访问二维数组的第 2 行和第 2 列,那么最终将是 3 步(第一行)+ 第二行中的步数,即 3 + 2 = 5。是从零开始的索引,即 -1,因此位于索引 4 处。

现在来说说具体的配方:

int oneDindex = (row * length_of_row) + column; // Indexes

所以,作为上面的例子,你最终会得到

oneDindex = (1 * 3) + 1

应该就是这样

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 2D 数组索引转换为 1D 索引 的相关文章

随机推荐

  • Android Studio 1.2 - 默认情况下项目编码不匹配

    我是一个Android菜鸟 刚刚升级到Android Studio 1 2 当我创建一个新项目 API 16 Android 4 1 Jelly Bean 时 我立即收到以下警告 警告 项目编码 windows 1252 与 Gradle
  • 如何用java实现SOA?

    我是 SOA 的新手 我想知道如何在 Java 中实现 SOA 我正在浏览各种仅处理概念的站点 它没有给出有关实现细节的清晰想法 以便在 Java 中使用 SOA 请提供有关如何实施 SOA 的详细信息 Thanks SOA 是关于设计原则
  • 向 Android SwipeRefreshLayout 添加文本提示

    如何在 listView 的顶部添加提示 例如 下拉刷新 该提示包含在 android support v4 的 swipeRefreshLayout 中 下拉刷新有效 但我想在用户稍微向下拉列表视图时添加文本 编辑 2014 年 10 月
  • Powershell 命令将断开连接的用户踢出服务器

    是否有一个 powershell 命令可以用来将 断开连接 的用户踢出服务器 一旦我知道踢单个用户的单行代码 我就可以编写脚本 例如 我想踢掉下面对话框中看到的 8 个用户 我不能尝试这个 pc qwinsta server YourSer
  • Ionic - 如何禁用 Android 键盘上的键盘建议

    我已经尝试了所有 ion textarea 的可能性 例如 type email 等 我无法让它在所有 Android 版本上工作 我已经安装了 cordova plugin ionic keyboard 它显示了没有建议的键盘 图 A 但
  • 使用 OpenID 登录时如何转义 URL 中的 & 符号?

    好吧 实际上我知道 我应该用 26 替换 但我使用此 URL 通过 OpenID 登录 如您所见 continue 参数已正确转义 但是在通过 Google 登录页面重定向后 它会将我重定向回 https innubili gidea ap
  • 如何为 UITabBarItem 创建操作?

    我创建了一个没有 UITabBarController 的 UITabBar 和 UITabBarItems 现在我想知道如何在单击 UITabBarItem 时放置一个操作 我应该使用什么方法对 UITabBarItem 执行操作 您无法
  • VSCode 重新映射键盘快捷键

    I have been trying for awhile now to remap the Ctrl Tab and Ctrl Shift Tab keys to switch editor tabs linearly Like they
  • 使用 Ruby 1.9.3 时出现“证书验证失败”OpenSSL 错误

    我在 Mac OS 10 6 8 上使用 Ruby 1 9 3p0 使用 rvm 安装 当我尝试使用创建新的 Rails 应用程序时托管在 GitHub 上的应用程序模板 https github com RailsApps rails3
  • 如何 printf 像表格一样对齐我的输出?

    printf 如何像表格一样对齐输出 Title Author BaokyBook Baoky2 Use basename commandUse basename command Baoky 我的部分代码是这样的 titlelength t
  • NSTimer 暂停不起作用

    我设置了三个按钮start stop pause 并给 NSTimer 提供控制来计算 开始停止按钮工作正常 给了我开始和停止时间 但是pause按钮没有给我准确的时间 它实际上是暂停时间 但再次开始它会添加暂停的计时和显示 ay 假设我在
  • OpenCV 框架:未找到架构 armv7 的符号

    我有预编译opencv2 framework http sourceforge net projects opencvlibrary files opencv ios 2 4 8 来自 OpenCV 我已将其添加到我的项目中 然而 尝试编译
  • nginx 配置以启用具有源匹配的 CORS

    我尝试过使用一个非常流行的配置 https gist github com Stanback 7145487对于nginx 它启用了CORS并支持使用正则表达式进行源匹配 这是我的配置 server listen 80 default se
  • 如何在 C# 中更改 WebBrowser 控件用户代理 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我是在 C 中使用 WebBrows
  • 使用 FFT 结果重新创建时间序列数据,而不使用 ifft

    我使用 fft 分析了 sunspots dat 数据 如下 这是该领域的一个经典示例 我从实部和虚部的 FFT 中获得了结果 然后我尝试使用这些系数 前 20 个 按照傅立叶变换公式重新创建数据 认为实部对应于a n 想象部分对应于b n
  • 如何在 K - 均值算法中优化 K [重复]

    这个问题在这里已经有答案了 可能的重复 使用 k 均值聚类时如何确定 k https stackoverflow com questions 1793532 how do i determine k when using k means c
  • Python 中的 CSV 列到数组

    我很难处理一个在我看来很简单的问题 我正在尝试导入 csv 并将其列拆分为数组 我可以对其运行不同的操作 然后 zip 重新组合在一起 import csv data csv reader open test csv rb delimite
  • 通过 VSTS 在 azure 部署中包含节点模块

    我有一个 Azure 应用程序服务 需要将其部署为 VSTS 中发布定义的一部分 为了提供一些上下文 它是一个 ASP NET MVC 应用程序并使用 Angular 2 它还有一个 package json 文件 我有一个 VSTS 构建
  • 使用 Raw-Loader 将 SVG 标记嵌入 vue-component 中

    我正在使用 webpack 导入 SVG原始装载机 https github com webpack contrib raw loader 这意味着我想将实际的 SVG XML 按原样嵌入到我的标记中 我正在尝试执行以下操作
  • 将 2D 数组索引转换为 1D 索引

    我有两个用于国际象棋变体的数组 我正在用java编码 到目前为止 我有一个控制台版本 它将棋盘表示为一维数组 大小为32 但我正在为其制作一个GUI 我想要它显示为 4x8 网格 所以我有一个 JPanel 的二维数组 问题是 考虑到它是一