调整数组大小,同时保持Java中的当前元素?

调整数组大小,同时保持Java中的当前元素?

我已经搜索了一种在Java中调整数组大小的方法,但是我找不到在保持当前元素的同时调整数组大小的方法。

我找到了类似的代码int[] newImage = new int[newWidth];,但这会删除之前存储的元素。

我的代码基本上会这样做:无论何时添加新元素,数组都会增加1。我认为这可以通过动态编程完成,但我不知道如何实现它。


当年话下
浏览 468回答 4
4回答

慕哥9229398

您无法在Java中调整数组大小。你需要:创建所需大小的新数组,并使用将原始数组中的内容复制到新数组&nbsp;java.lang.System.arraycopy(...);使用java.util.ArrayList<T>该类,当您需要使数组更大时,它会为您执行此操作。它很好地封装了您在问题中描述的内容。使用java.util.Arrays.copyOf(...)返回更大数组的方法,以及原始数组的内容。

DIEA

不好,但有效:&nbsp;&nbsp;&nbsp;&nbsp;int[]&nbsp;a&nbsp;=&nbsp;{1,&nbsp;2,&nbsp;3}; &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;make&nbsp;a&nbsp;one&nbsp;bigger &nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;=&nbsp;Arrays.copyOf(a,&nbsp;a.length&nbsp;+&nbsp;1); &nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;:&nbsp;a) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(i);如前所述,请使用ArrayList

吃鸡游戏

这有几种方法可以做到这一点。方法1&nbsp;System.arraycopy():将指定源数组中的数组从指定位置开始复制到目标数组的指定位置。数组组件的子序列从src引用的源数组复制到dest引用的目标数组。复制的组件数等于length参数。源数组中位置srcPos到srcPos + length-1的组件分别被复制到目标数组的destPos到destPos + length-1的位置。Object[]&nbsp;originalArray&nbsp;=&nbsp;new&nbsp;Object[5];&nbsp;&nbsp;&nbsp;Object[]&nbsp;largerArray&nbsp;=&nbsp;new&nbsp;Object[10];System.arraycopy(originalArray,&nbsp;0,&nbsp;largerArray,&nbsp;0,&nbsp;originalArray.length);方法2&nbsp;Arrays.copyOf():复制指定的数组,使用空值截断或填充(如有必要),以使副本具有指定的长度。对于在原始数组和副本中都有效的所有索引,这两个数组将包含相同的值。对于在副本中有效但不在原始副本中的任何索引,副本将包含null。当且仅当指定的长度大于原始数组的长度时,这些索引才会存在。生成的数组与原始数组完全相同。Object[]&nbsp;originalArray&nbsp;=&nbsp;new&nbsp;Object[5];&nbsp;&nbsp;&nbsp;Object[]&nbsp;largerArray&nbsp;=&nbsp;Arrays.copyOf(originalArray,&nbsp;10);请注意,此方法通常System.arraycopy()&nbsp;在幕后使用。方法3&nbsp;ArrayList:List接口的可调整大小的数组实现。实现所有可选列表操作,并允许所有元素,包括null。除了实现List接口之外,此类还提供了一些方法来操作内部用于存储列表的数组的大小。(这个类大致相当于Vector,除了它是不同步的。)ArrayList的功能与数组类似,只是当您添加的元素多于它可以包含的元素时,它会自动扩展。它由一个数组支持,并使用Arrays.copyOf。ArrayList<Object>&nbsp;list&nbsp;=&nbsp;new&nbsp;ArrayList<>(); //&nbsp;This&nbsp;will&nbsp;add&nbsp;the&nbsp;element,&nbsp;resizing&nbsp;the&nbsp;ArrayList&nbsp;if&nbsp;necessary. list.add(new&nbsp;Object());
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java