如果要在java中将数组的所有元素输出到控制台,该怎么办?
是否要在一个循环中循环和输出数组中的每个元素?
看起来不像二维排列
今天我想说的是,能用一行代码完成这项工作。 同样的代码啊。
看看下面的代码。
定义数组后,我们只编写了代码,这样能达到输出数组所有元素的目的吗? 看看执行结果就知道了。
是达到了我想要的目的。
厉害吗? 其实没那么奇怪。 一起看看源代码,看看这个Arrays.toString做了什么。
其实他只是为我们做了循环的事。
如果它是二维数组或更多维数组,则从上面的源代码来看,无法输出所有元素。
我试试看。
输出的是内部数组的存储器地址。 没有收到我们想要的效果呢。
我该怎么办?
请不要担心。 一个叫java.util.Arrays的类为我们提供了另一种方法。 那是针对以上情况的。 什么方法? 请看下面的代码。
这次达到了我们的目的。
看看这个Arrays.deepToString是怎么做到的。
代码图1
代码图2
代码图3
代码图4
因为编码方法很长,所以把多个图分开剪了。 代码图1中的方法是代码移动的示例。 在代码图1中调用了代码图2中定义的方法(代码图2、代码图3、代码图4三个图总体上是一个方法,但为了方便分为三个图。 感兴趣的人可以自己去看源代码),在代码图3中,如果数组元素是枚举的这些类型的数组,则可以直接调用Arrays.toString。 如果数组元素不是枚举的这些类型的数组,则会再次调用它自己的方法(代码图2中定义的方法)。 这个称呼叫做递归。
就这样实现了输出多维数组元素的目标。
java行代码输出数组中所有元素的内容到此为止。 如果您认为有必要感谢递归,请在评论区告诉我。