java - 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);
解决方案
这里:
char[] charArr2 = new char[10];
charArr2 = charArr1.clone();
你假设:
我希望下面的结果是 10,但输出是 3。
你的问题是它clone()
没有做你认为它做的事情。您认为它将一个数组的内容复制到另一个数组中。但事实并非如此。反而:
当对数组调用 clone 方法时,它会返回对新数组的引用,该数组包含(或引用)与源数组相同的元素。
(来自这个答案)。
例如,如果要保留使用创建的数组,new char[10];
则必须使用System.arraycopy()。该调用保留目标数组,从某个源数组中复制值。
推荐阅读
- code-climate - codeclimate.yml 中的代码气候测试报告器配置
- android - webRTC 在 peerConnection.dispose() 上崩溃
- configuration - How to disallow usages of "window.document.[anything]" and "document.[anything]" in eslint config?
- ios - iPhone 拒绝了 Xcode 10 + Cordova 的发布请求
- reactjs - 如何检查组件是否已卸载到功能组件中?
- excel - How to send mails with Excel without seeing the virus scanner message in the email
- linux - 如何将自定义 bash 函数中的参数作为 dir 路径的一部分传递?
- javascript - 在 HTML 页面中在 5 处显示滚动条,但值字段应读取文件并打印文件内的值
- laravel - Ordering laravel form::select by already selected values
- openshift - OpenShift 4.x and HELM