00:00
那好了,同学们,那么接下来呢,我还有一个问题,我要问一下大家,如果说数组满了要扩容,你怎么办?二位T08。关于一维数组的扩容。在Java开发中,数组长度是数组长度,一旦确定啊,不可变。那么数组满了怎么办?数组满了需要扩容,Java中对数组的扩容是这样的,Java中对数组的扩容是。先干什么呀,先将。就先。先新建一个大容量的什么数组?
01:02
然后将小容量数组中的数据一个一个拷贝到哪。拷贝到。大数组当中,我大概的话给大家,嗯,说一下啊说一下。我呢就不再保存这个了啊,比如说你现在这里有一个数组。里边存了三个元素。但是呢,你这个元素啊,已经存满了,这存一嘛,这个存二,这是存三。你再往下存一个四的时候怎么办?它实际上是在这一个大数组。你明白吗?建一个大的数组啊。然后他把里边这个数据怎么着。拷进来啊,把这拷进来,把这个拷进去。明白吧,把这个数组干掉,这个数组最后被干掉了。
02:00
明白吗?没了。啊,然后接下来他在后边再加再加再加,等你这个数组如果满的话,它会再建一个大的数组,然后把里边数组怎么着考考考考该考考进来啊,他只能这样啊,只能是这样的各位啊,我在这里说一下,这叫数组的扩容,关于因为数组的扩容在加号开发的数组长度一旦确定。不可变是吧?那么数组满了怎么办?数组满了需要扩容,Java中对数组扩容是先新建一个大容量的数组,然后将小容量数组中的数据一个一个拷贝到大数组当中啊。所以数组的扩容效率比较低啊。结论。结论,数组扩容效率较低,因为涉及到什么呀,涉及到拷贝的问题。涉及到拷贝问题啊,所以在以后的开发中请注意啊,请注意。尽可能尽可能啊。呃,少的进行什么数组的拷贝。
03:04
可以在创建数组的时候,创建数组对象的时候预估计一下。啊,多长合适?明白吗?啊,最好预估准确。这样可以减少数组的扩容次数,提高效率。啊,提高效率。那么我们把这个说完啊,那么Java中的数组是怎么进行拷贝的呢?我给大家,我给大家讲一个方法啊,讲一个方法各位。这个方法是system方方。啊。哎呀,这个参数还挺多。看到吗?第一个参数是一个对象object是吧。
04:03
第二个参数是什么呀?哎,位置第三个参数是目标S2C语言嘛,这是目标,这是位置吧,拷贝长度。是不是,哎,就调这个方法咱不用写啊,点过去你看散公司,散公司已经给我们写好了,而且前面有native,这说明这个数组拷贝的时候,大家想一想,这个数组拷贝的时候,底层是不是执行的C加加程序。是不是直接用类名去调就行了,叫every copy,你看。是不是需要这么几个参数啊,一个两个三个四个五个参数呢。对不对,它需要五个参数,各位啊,五个参数静态方法好用啊,Native本地叫的C加加system类名,点every copy就可以了。Ary Co。啊,五个参数。五个参数啊。行,先吃饭去吧,啊,下午咱们再看。
我来说两句