我一直在寻找一种在 Java 中调整数组大小的方法,但找不到 在保持当前元素的同时 调整数组大小的方法。
我发现例如 int[] newImage = new int[newWidth];
之类的代码,但这会删除之前存储的元素。
我的代码基本上会这样做:每当添加一个新元素时,数组就会扩大 1 。我认为这可以通过动态编程来完成,但我不确定如何实现它。
原文由 Mihai Bujanca 发布,翻译遵循 CC BY-SA 4.0 许可协议
我一直在寻找一种在 Java 中调整数组大小的方法,但找不到 在保持当前元素的同时 调整数组大小的方法。
我发现例如 int[] newImage = new int[newWidth];
之类的代码,但这会删除之前存储的元素。
我的代码基本上会这样做:每当添加一个新元素时,数组就会扩大 1 。我认为这可以通过动态编程来完成,但我不确定如何实现它。
原文由 Mihai Bujanca 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
您不能在 Java 中调整数组的大小。您需要:
创建一个所需大小的新数组,并将内容从原始数组复制到新数组,使用
java.lang.System.arraycopy(...);
使用
java.util.ArrayList<T>
类,当您需要扩大数组时,它会为您执行此操作。它很好地封装了您在问题中描述的内容。使用
java.util.Arrays.copyOf(...)
方法返回一个更大的数组,其中包含原始数组的内容。