多个链接数组的替代方案?
Posted
技术标签:
【中文标题】多个链接数组的替代方案?【英文标题】:An alternative to multiple linked arrays? 【发布时间】:2014-04-27 23:46:36 【问题描述】:我想知道是否有更好的链接数组的方法?这不是一个特定于语言的问题,任何和所有想法都会很有趣,可以阅读更多内容。
基本上,我有一个节点数组。该数组链接到另一个具有唯一 ID 的数组。反过来,这个数组链接到一个带有 x 坐标的数组,而这个数组又链接到另一个带有 y 坐标的数组……你看,它变得非常复杂。
这是有道理的,我可以毫无问题地像这样使用它,但我不禁想到有更好的方法,并且比我更有技能的人可能能够提供帮助?
【问题讨论】:
这些数组之间的关系是什么?比如是第一个x坐标,第一个节点的x坐标等等?我想我想了解的是为什么要在数组中表示这些然后链接它们?没有uniqueId
、xCoordinate
和yCoordinate
的对象,然后拥有这些对象的数组就足够了吗?
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 请求?