【问题标题】:Is there any way to extend a Array without copy or without using Arraylist and increase the array size dynamically?有没有办法在不复制或不使用 Arraylist 的情况下扩展数组并动态增加数组大小?
【发布时间】:2019-12-17 07:06:57
【问题描述】:

例如,如果我有一个数组 A。我不应该使用 Array 复制来增加数组大小,或者我不应该使用 Arraylist。

【问题讨论】:

  • 不可能,除非您在内部使用嵌入数组的列表,即创建您自己的数据结构,这会更糟!
  • 听起来像是功课。为什么你不想使用 ArrayCopy 或 Arraylist ?
  • 这是您要解决的实际问题,还是您解决不同问题的问题?
  • @WJS 我试图减少数组操作的时间。我尝试复制新数组和数组列表。喜欢寻找不同的方式,我仍然可以减少时间消耗。

标签: java arrays algorithm


【解决方案1】:

我不应该使用 Array 复制来增加数组大小,或者我不应该使用 Arraylist

如果您不能使用Arrays.copy() 并且您不能使用ArrayList,那么您只需自己调整大小,例如:

public static String[] increaseSize(String[] array, int newLength) {
    if (array.length >= newLength)
        return array;
    String[] newArray = new String[newLength];
    for (int i = 0; i < array.length; i++)
        newArray[i] = array[i];
    return newArray;
}

由于 Java 数组是固定大小,因此更改大小的唯一方法是创建一个新数组并复制元素。无论是自己做,还是使用一些 API 方法来帮助您,这都是必须要做的。

Java 中不存在 动态大小的数组

【讨论】:

    猜你喜欢
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-21
    • 2011-12-02
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多