「java数组增加长度」java数组怎么增加长度

博主:adminadmin 2022-12-09 17:51:07 66

今天给各位分享java数组增加长度的知识,其中也会对java数组怎么增加长度进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java中将数组的长度扩大1的方法,有吗

java中没有关于修改数组长度的api,在此提供了修改数组长度的两个函数:arrayAddLength()和arrayReduceLength()。

import java.lang.reflect.Array;

/**

* Description: This class is used to adjust array length.

* @author pieryon

*/

public class ArrayTest {

/**

* @param args

*/

public static void main(String[] args) {

int a[]= new int[]{0,1,2,3,4,5};

int b[]= new int[]{0,1,2,3,4,5};

a = (int[]) arrayAddLength(a,2);

b = (int[]) arrayReduceLength(b,2);

//out print array lenght

System.out.println(a.length);

for (int i=0;ia.length;i++){

System.out.print(a[i]);

}

System.out.println();

System.out.println(b.length);

for (int i=0;ib.length;i++){

System.out.print(b[i]);

}

}

/**

* Description: Array add length

* @param oldArray

* @param addLength

* @return Object

*/

public static Object arrayAddLength(Object oldArray,int addLength) {

Class c = oldArray.getClass();

if(!c.isArray())return null;

Class componentType = c.getComponentType();

int length = Array.getLength(oldArray);

int newLength = length + addLength;

Object newArray = Array.newInstance(componentType,newLength);

System.arraycopy(oldArray,0,newArray,0,length);

return newArray;

}

/**

* Description: Array reduce lenght

* @param oldArray

* @param reduceLength

* @return Object

*/

public static Object arrayReduceLength(Object oldArray,int reduceLength) {

Class c = oldArray.getClass();

if(!c.isArray())return null;

Class componentType = c.getComponentType();

int length = Array.getLength(oldArray);

int newLength = length - reduceLength;

Object newArray = Array.newInstance(componentType,newLength);

System.arraycopy(oldArray,0,newArray,0,newLength);

return newArray;

}

}

java怎么重新定义int数组长度?

在Java中,数组对象Array的长度是在实例化时就定死了,不能修改。

像你这种情况,一般是新建一个数组,重新设置长度,可能的话再将老数组里的值拷贝进去:

public class ArrayTest {

public static void main(String[] args) {

int[] arr1 = { 1, 2, 3, 4, 5 }; // 初始化一个数组,长度是5(定死了)

int[] arr2 = new int[10];// 重新初始化数组,长度是10;

// 将老数组复制到新数组

for (int i = 0; i arr1.length; i++) {

arr2[i] = arr1[i];

}

// 将老数组对象arr1指向新数组

arr1 = arr2;

// 如果不要复制,最简单的就是直接实例化

int[] arr1_1 = new int[5];// 初始化一个数组,长度是5(定死了)

arr1_1 = new int[10]; // 再实例化一次,就是一个新数组,以前数组里的东西就不存在类

}

}

java中已经定义好的数组怎样扩大长度?

String[] s = new String[]{"a","b"};

String[] s1 = new String[20];

System.arraycopy(s, 0, s1, 0, s.length);

此时s1长度为20,并且包含s中定义的内容,如果需要的话,可以返回s1做为扩大了长度的数组。

java中数组的长度可以改变吗?

java中数组的长度不可以改变。

java中的数组的定义就是相同类型,固定长度的一组数据,一旦被初始化,长度不可更改。如果对需要用的数组的长度不确定,有两种解决办法:

第一种是在数组初始化的时候长度申请的足够大,这样做会造成内存空间的浪费,一般不推荐使用。

第二种是用java中提供的集合的方式存储数据,如List,Set和Map类型的对象存储数据,一方面这些类型的对象的长度都是动态增长的,另一方面这些类中提供了很多便于操作数据的方法,因此在对所需存储数据的多少不确定的时候,第二种方法比第一种方法更优秀。

java中,如何实现动态为int类型数组增加长度?

一般是这样做的。当访问越界,或者添加数据超过数组当前的length时候。

重新申请一个大于等于越界长度的数组。

然后通过Sysmem.arraycopy将原先数组的内容拷贝到新的内存块中。

如果删除了某些元素,使得capacity(容器大小)远大于实际的length时。可以重新构建trim后的数组并copy过去。

这也是ArrayList中的实现方法。System.arraycopy是一个native方法,拷贝效率比较高。

java数组增加长度的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java数组怎么增加长度、java数组增加长度的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-09,除非注明,否则均为首码项目网原创文章,转载请注明出处。