【问题标题】:Java Character Array Max CapacityJava 字符数组最大容量
【发布时间】:2020-01-10 19:41:51
【问题描述】:

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

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

// 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


【解决方案1】:

这里:

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

你假设:

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

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

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

(来自answer)。

如果你想保留你使用new char[10];创建的数组,你将不得不使用System.arraycopy()。该调用保留目标数组,从某个源数组中复制值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 2016-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多