多个链接数组的替代方案?

Posted

技术标签:

【中文标题】多个链接数组的替代方案?【英文标题】:An alternative to multiple linked arrays? 【发布时间】:2014-04-27 23:46:36 【问题描述】:

我想知道是否有更好的链接数组的方法?这不是一个特定于语言的问题,任何和所有想法都会很有趣,可以阅读更多内容。

基本上,我有一个节点数组。该数组链接到另一个具有唯一 ID 的数组。反过来,这个数组链接到一个带有 x 坐标的数组,而这个数组又链接到另一个带有 y 坐标的数组……你看,它变得非常复杂。

这是有道理的,我可以毫无问题地像这样使用它,但我不禁想到有更好的方法,并且比我更有技能的人可能能够提供帮助?

【问题讨论】:

这些数组之间的关系是什么?比如是第一个x坐标,第一个节点的x坐标等等?我想我想了解的是为什么要在数组中表示这些然后链接它们?没有uniqueIdxCoordinateyCoordinate 的对象,然后拥有这些对象的数组就足够了吗? Struct yourNode ... int ID; double x, y; ;std::vector<yourNode> vecOfNodes;? BTW java 和 c++ 标签在同一个问题中?在我看来,这很挑衅youtube.com/watch?v=Aa55RKWZxxI 【参考方案1】:

面向对象编程为我们提供了更好的方法,C++ 和 Java 都是面向对象的语言。因此,与其将多个数组链接在一起(意味着每个数组中的索引 i 引用相关数据),我们可以这样做:

public class Node 
    int id;
    int x,y;

    static ArrayList<Node> allNodes;

   public Node(int idNum, int x, int y) 
      id = idNum;
      this.x = x;
      this.y = y;
  

现在您的所有节点列表包含一个包含您需要的所有数据的数组。 例如,

 Node firstNode = Node.allNodes.get(0);
 //coordinates are firstNode.x, firstNode.y and id is firstNode.id

【讨论】:

作为一个挑剔的人,我认为您的意思是结构化编程。用纯 C 或 Pascal 以及许多其他非 OO 语言做您所描述的事情是微不足道的。 是的,把class换成struct,概念是一样的。

以上是关于多个链接数组的替代方案?的主要内容,如果未能解决你的问题,请参考以下文章

链接服务器的替代方案,速度相同

使用 DITA OT 和 FOP 生成的 PDF 中链接的替代文本

PHP:对象数组 - 序列化与 json_encode - 替代方案?

如何使用 Javascript 中的动态链接数组发出多个 Axios 请求?

链接多个 Promise,使用 map 循环数组并创建 mongoose 文档?

如何把多个byte的数组链接在一起