Java 用于存储、解析和传递多维信息的数据结构

Java 用于存储、解析和传递多维信息的数据结构,java,minecraft,Java,Minecraft,我正在尝试决定如何存储一组三维数据。集合中的每个点都包含关于该点的信息结构 关于3d场景的事实: 大多数外部点将为空。 有效点将为不规则形状。 任何两个有效点之间都有一条路径 我希望空间的大小由每个维度的最大/最小点决定(最外层必须至少有一个有效点才能保持) 我需要对这些点做什么(连接是两个基本相邻的重要点): 已知起点(起点的相对x、y、z) 跟随一条边(连接到2-3条其他边的点) 标识曲线开关(2条3点边不构成四边形的点) 识别叶(仅连接到另一个点的点 我考虑过的结构: 链表(每个节点

我正在尝试决定如何存储一组三维数据。集合中的每个点都包含关于该点的信息结构

关于3d场景的事实: 大多数外部点将为空。 有效点将为不规则形状。 任何两个有效点之间都有一条路径

我希望空间的大小由每个维度的最大/最小点决定(最外层必须至少有一个有效点才能保持)

我需要对这些点做什么(连接是两个基本相邻的重要点):

  • 已知起点(起点的相对x、y、z)
  • 跟随一条边(连接到2-3条其他边的点)
  • 标识曲线开关(2条3点边不构成四边形的点)
  • 识别叶(仅连接到另一个点的点
我考虑过的结构:

  • 链表(每个节点6个连接)
    • 仅存储重要点
    • 很难识别尺寸的宽度
  • 三维阵列
    • 易于识别尺寸的宽度
    • 存储了很多不重要的点
是否有其他结构更适合我?是否有其他理由选择上述结构之一而不是其他结构


如果您碰巧了解minecraft forge 1.8.9的开发。我正在尝试基于items nbt创建一个动态项目模型。请随意查看我目前拥有的代码。

我决定使用坐标的字符串表示作为键(“x,y,z”)创建一个hashmap我使用了一个接口作为对象。这种设置使将结构存储到json变得相当容易,使我能够轻松访问所有点,因为我可以在运行时为任何点生成键。

我决定使用坐标的字符串表示作为键(“x,y,z”)我使用了一个接口作为对象。这种设置使将结构存储到json变得相当容易,使我能够轻松访问所有点,因为我可以在运行时为任何点生成键。

我认为将链表存储到NBT中并不容易,因为NBT没有一种看起来类似的类型。但是,3D数组也可以似乎不正确。我很想建议存储一个点列表,然后用一个单独的列表创建直线和多边形。@Pokechu223我将自己处理读/写文件,所以我不局限于NBT。我认为将链接列表存储到NBT并不容易,因为NBT没有类似的类型。但是,3D array似乎也不对。我很想建议存储一个点列表,然后用一个单独的列表创建直线和多边形。@Pokechu223我将自己处理文件的读/写操作,所以我不限于NBT。