如何从另一个类中的ArrayList获取项目并在当前类的ArrayList中引用它(仅使用索引)?

时间:2014-02-08 01:19:26

标签: java arraylist

让我先说一下,我是编程新手,并且只学习Java和OOP大约六周(所以如果我使用不正确的术语,请原谅我)。我将尝试有条不紊地解释我的问题:

我正在为我正在制作的小应用程序创建一个网格。由于各种原因,重要的是我可以在网格上引用单元格或“坐标”,但我也可以找出(并且可能操纵)单个行或列中的内容。

Grid类有一个构造函数,它分别用新的HLine和VLine对象(水平和垂直线)填充两个ArrayLists('horizo​​ntals'和'verticals')。

HLine类有一个构造函数,用新的未命名的Cell对象填充它自己的Arraylist。好到目前为止。

然后我希望VLine的构造函数使用对刚刚创建的HLine对象中已存在的正确对应单元格的引用来填充ArrayList,纯粹通过引用它们的索引(因此第一个HLine的0位置中的Cell是在第一个VLine的0位置引用的Cell的相同实例

我很确定我找到了如何找到正确的单元格,但是我无法告诉Java我想要哪个单元格(仅使用ArrayList索引,而不是名称)。

以下是本节的内容:

public VLine(int chosensize){

    //get the right cells for the VLines

    //loop through columns and iterate thisCol

    for(int i=0;i<chosensize;i++){

        int thisCol = i;


        //loop through HLines getting the cell at number 'thisCol' from each one
        //i.e. HLine1 column0, HLine2 column0, HLine3 column0


        for(int x=0;x<chosensize;x++){

            //this is not my code attempt, but should show what I want to do (but can't get it to compile): 

            HLine thisHLine = myGrid.horizontals.get(x);

            this.myCells.add(thisHLine.get(thisCol));

        }

    }

我不确定它是不是很傻,就像我必须将数组对象作为参数发送到我的构造函数中,但我想我能通过myGrid对象引用它。

我还想过在我的HLine中为单元格制作一个getter,但是不是ArrayList的'get'能够很好地执行这个功能吗?

当然,可能是因为我错过了某种基本规则 - 不管怎样,任何帮助都会受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

我建议使用一个二维数组(如果你知道你的网格将具有恒定的行数和col)或网格类中的两个arraylists,这样你就可以访问这个数组/来自其他地方的arraylist,例如你的两个Line类。我还建议将此数组设为私有,并提供带有1个参数的Grid类的getter和setter方法,以访问和读取/写入您对数组感兴趣的特定索引。

这有意义吗?我可以稍微详细说明一下。