首页 > 解决方案 > Java 字符数组最大容量

问题描述

我正在尝试用 Java 编写一些围绕 Char 数组的代码并且有一些问题,从下面的第一个开始。如果可能在代码中的任何地方,我更喜欢使用 Java 8 并避免使用循环。请帮忙,谢谢。

问题 1:打印出字符数组的最大容量。

// Create a character array that can hold a max of 10 elements and copy 
over the contents from another character array.

char[] charArr1 = {'A','B','C'};
char[] charArr2 = new char[10];
charArr2 = charArr1.clone();

// I wanted the result below to be 10, but the output was 3.

System.out.println(charArr2.length);

标签: java

解决方案


这里:

char[] charArr2 = new char[10];
charArr2 = charArr1.clone();

你假设:

我希望下面的结果是 10,但输出是 3。

你的问题是它clone()没有做你认为它做的事情。您认为它将一个数组的内容复制到另一个数组中。但事实并非如此。反而:

当对数组调用 clone 方法时,它会返回对新数组的引用,该数组包含(或引用)与源数组相同的元素。

(来自这个答案)。

例如,如果要保留使用创建的数组,new char[10];则必须使用System.arraycopy()。该调用保留目标数组,从某个源数组中复制值。


推荐阅读