【发布时间】:2014-12-05 15:41:16
【问题描述】:
我一直在为即将到来的 Java 考试而学习,但我很难将我的头脑围绕在 2D 数组上。我已经掌握了一些基础知识,例如创建和初始化一个二维数组,但是当涉及到插入、删除甚至排序时,我感到很困惑。我的教授花了 10 分钟来复习基础知识,但在我们的考试中,我们应该知道如何创建一个二维对象数组,并通过插入、删除和排序数组中的对象来操作数据。他让我们在考试中手写所有代码,因此不允许计算机协助完成这个过程。我已经花了几个小时在这里和其他网站上倾注示例,但我仍然觉得我对材料的理解不够好,无法亲手编写所有代码并正确处理。
我的困惑主要源于嵌套的for 循环通常用于在二维数组中移动。我可以看到其他人如何做到这一点并复制它,但我仍然不明白为什么循环会像他们那样工作。我敢肯定我在这里是少数,但无论出于何种原因,它背后的逻辑让我完全迷失了方向。
以我一直致力于帮助自己理解 2D 数组(以及其他考试材料)的这个(尽管很差)示例为例。假设您经营一家汽车经销商,并且您想订购汽车来填补您的库存。该程序以顶级abstract 类开始,该类描述了您一般销售的汽车(在我的例子中是奥迪)。经销商提供 4 种奥迪车型,A4、A6、A8 和 R8。所有这些汽车(类)都从super 继承方法,命名为Audi。然后我想创建一个二维数组来存储库存的汽车。这将在我定义的另一个类中使用,包括search()、delete() 和sort() 的方法。我们称之为AudiDealership。经销商每个模型只能持有 3 个,因此数组将类似于 Audi[4][3]。 A4 将填充第一行,subscript 0,A6 填充subscript 1,等等。我将如何设置for 循环以从正确的行中插入/删除?我显然不希望将 A4 插入应该容纳 A6 的行中,依此类推。
同样,我可以整天盯着代码并复制它,但我想理解 为什么/循环如何工作做。如果这个话题看起来微不足道或被殴打致死,我深表歉意,但我在发布之前所做的所有阅读都让我和以前一样困惑。这个网站上的许多人本身就是出色的老师,所以我想有人可以用我能理解的方式解释这一点。我的教授在这方面没有任何帮助,所以我正在使用外部手段来尝试解决问题。我非常感谢您提前提供的任何建议或解释:)
【问题讨论】:
-
也许你读过这个? docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html 这是了解如何处理数组的绝佳资源。如果您了解如何使用单个数组,那么二维数组就是数组的数组,因此一旦掌握了这个概念,就会更容易理解。
标签: java for-loop multidimensional-array