当前位置: 首页 > 编程笔记 >

Java数组动态增加容量过程解析

凤经国
2023-03-14
本文向大家介绍Java数组动态增加容量过程解析,包括了Java数组动态增加容量过程解析的使用技巧和注意事项,需要的朋友参考一下

Java数组初始化需要指定数组容量,但是在许多情况下需要动态扩充容量。有两种方法可以实现:

1.采用ArrayList类数组,它可以在需要时自动扩容;

2.采用System.arraycopy方法实现,其声明为:araycopy(Object src,int srcPos,Object dest,int destPos, int length) 写个代码就可明白了,示例如下:

import java.util.*;
class Test
{  
  public static void main(String[] args)
  {  
    int incre=2; //容量增加量
    int[] a={1,2,3,4};
    int[] b=new int[a.length+incre];//新数组
    System.arraycopy(a, 0, b, 0, a.length);//将a数组内容复制新数组b
    b[4]=5;//b数组新增元素
    b[5]=6;
    a=b;//改变引用
    System.out.println("扩容后数组a容量为为:"+a.length+" 数组a内容:");
    for(int i:a)
      System.out.print(i+" ");  
  }    
}

代码并没有真正增加原数组a的容量,只是将a内容复制到新的大数组,然后让a重新引用大数组。由于Java数组存贮在堆中,原a数组无需释放,会被自动回收。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍微信小程序动态增加按钮组件,包括了微信小程序动态增加按钮组件的使用技巧和注意事项,需要的朋友参考一下 这里的微信小程序动态加载是以按钮为例,主页面点击不同的按钮进入不同的子页面中,根据主页面的title来动态加载子页面按钮的数量以及值。 效果图: wxml文件(注意wx:key="item"要写,不然它会有警告): 这里起关键作用的是wx:for,这里是循环。 wxss文件: js文

  • 问题内容: 在JDK 1.7中,该方法使用以下表达式来增加ArrayList.java的数组容量:因此,看来新容量几乎比旧容量增加了50%。 但是在很多书中都说容量翻了一番…所以书没有更新或我不太了解? 问题答案: 您的理解是正确的,newCapacity比oldCapacity大50% 在Java 6中,newCapacity计算为 这是Java之类的开源语言的魅力,您可以看到实现-如果它不符合

  • 我试图从SSRS服务器读取报告,问题是我的内存流不能超过65536字节。 到目前为止,我已经尝试过使用内存流,但尚未成功设置其容量,然后再阅读报告本身 上面的MemoryStream必须在我读取文件之前增加它的容量。 我试过在我的应用程序中玩。配置,但我不知道从哪里开始设置内存流的字节容量

  • 问题内容: 我正在学习Java编程课程,并且需要有关动态数组的帮助。我环顾四周,找不到解决方法,这只是我的简单程度。我上课不远,只是学习了基础知识,所以我不太了解,但是我需要知道如何制作动态数组。 这是我们获得的两个示例程序: 2号 第二个应该继承第一个,并允许您在键入后创建更多数组。但是当我使用它们时,它说我有一个错误,并且说只有在明确要求注释处理的情况下,类名称才被接受。 问题答案: 将此用于

  • 问题内容: 我的机器上有一个jvm服务器,现在我想在同一台机器上有2个我的apserver,但是我希望备用服务器分配给xmx的内存非常少,因为它的被动服务器是主服务器(主动服务器) )掉了,我想给没有启动的被动服务器分配更多的内存,而无需重启它(我让它们的xmx都太多了- 请注意,它们会在启动时消耗内存,并且我不允许outOfMemory的可能性)。 所以我要被动-低xmx,一旦主动下降,我希望我

  • 你能帮我理解一下为什么我不能增加静态变量吗?我面临以下问题:*错误LNK2001:未解析的外部符号“private:static unsigned int counter::m_curcounters”(?m_curcounters@counter@@0ia)*