在 Java 中调整数组大小

培训教学 潘老师 7个月前 (09-22) 156 ℃ (0) 扫码查看

Java 数组是固定大小的数据结构,一旦初始化,数组的大小就无法更改。但是,在需要改变数组大小的情况下,我们必须遵循本教程中提供的方法之一。

1.使用java.util.Arrays.copyOf()

copyOf(originalArray, newLength) 方法接受一个数组和新的数组长度。copyOf() 创建一个具有所需新长度的新数组,并使用 System.arraycopy() 函数将 originalArray 复制到新数组中。

如果新数组的大小比原数组小,则 copyOf() 截断剩余的项目;如果新数组的大小比原数组大,则用 null 填充剩余的索引。结果数组与原始数组的类型完全相同。

请注意,copyOf() 方法仅调整一维数组的大小。对于调整多维数组的大小,没有通用解决方案,我们需要提供自己的逻辑。

String[] originalArray = {"A", "B", "C", "D", "E"};
String[] resizedArray = Arrays.copyOf(originalArray, 10);
resizedArray[5] = "F";
System.out.println(Arrays.toString(resizedArray));
//[A, B, C, D, E, F, null, null, null, null]

很少有其他 API 可以调整数组大小,但在内部它们遵循相同的方法,因此我们可以跳过它们。

2.使用 ArrayList

另一种方法是重新思考您的设计。如果 ArrayList 更适合这种用例,那么考虑在数组的位置使用 List。

列表已经是动态可调整大小的,允许基于索引的访问,并提供出色的性能。

String[] originalArray = {"A", "B", "C", "D", "E"};
ArrayList<String> list = new ArrayList<>(Arrays.asList(originalArray));
list.add("F");
System.out.println(list);
//[A, B, C, D, E, F]

3.结论

在Java中,调整数组大小与其他编程语言没有什么不同。调整大小的过程分配一个具有指定大小的新数组,将元素从旧数组复制到新数组,然后用新数组替换旧数组。

在Java中,我们不进行显式的内存管理,因此垃圾回收会处理旧数组,并在适当时释放内存。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/teach/9190.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】