Java修改数组长度

java中没有关于修改数组长度的api,在此本人提供了修改数组长度的两个函数:arrayAddLength()和arrayReduceLength().详细见代码.

[java] view plaincopyprint?

import java.lang.reflect.Array;

/**

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

* @author e421083458

*

*/

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;i<a.length;i++){

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

}

System.out.println();

System.out.println(b.length);

for (int i=0;i<b.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;

}

}

时间: 2024-10-31 00:12:51

Java修改数组长度的相关文章

Java的数组长度无需编译指定,因为它是对象

大家可以看从Thinking in Java中摘出来的代码理解一下,甚至.多维数组的子数组无须等长 //: MultiDimArray.java// Creating multidimensional arrays.import java.util.*;public class MultiDimArray {static Random rand = new Random();static int pRand(int mod) {return Math.abs(rand.nextInt()) %

Java初学者:数组,得到数组长度

得到数组的长度在java里是很简单的,那就是:数组名.length,我们来看一个简单的程序就可以了,如下: 这个就是上次的那个程序,我只是把for后面那个4改成了a.length,也许有人要问了,那为什么非要求出数组的长度呢?数组在起始的时候,长度不就 已经确定了吗?是的,但是有的时候还是会出现那种,我们不知道数组长度的情况,比如,一个函数的参数是数组的时候(我们以后会说到函数),再比如,如果数 组的长度是由用户输入的呢?下面我们就来做这样一个程序,让用户来输入一个整型数据作为数组的长度,然后创

找出一个整数数组中超过数组长度一半的元素(Java)

Question:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字 package com.study.zhipengs.test; import java.util.Arrays; import java.util.HashMap; import java.util.Map; /** * 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字. * 例如输入一个长度为9的数组{1, 2, 3, 2, 2, 2, 5, 4, * 2}.由于数字2在数组中出现了5次,超过数组长度

什么情况下使用break关键字? 什么情况下使用Continue关键字? Java如何声明一个数组?JS如何声明一个数组?如何获取数组长度? 如何遍历数组?

什么情况下使用break关键字?什么情况下使用Continue关键字? Break Break关键用于终止循环. 示例: 1 2 3 4 5 6 for (int i = 0; i < 10; i++) {   if (i == 4) {     break; //终止循环,后面的循环不再执行   }   System.out.println(i); } Continue Continue关键字用于终止本次循环,其它循环继续. 示例: 1 2 3 4 5 6 7 for (int i = 0;

0131 JavaScript数组中新增元素:修改数组索引、修改 length 长度、数组翻转

? 数组中可以通过以下方式在数组的末尾插入新元素: 数组[ 数组.length ] = 新数据; 1.5.1 通过修改 length 长度新增数组元素 可以通过修改 length 长度来实现数组扩容的目的 length 属性是可读写的 var arr = ['red', 'green', 'blue', 'pink']; arr.length = 7; console.log(arr); console.log(arr[4]); // undefined console.log(arr[5]);

Java 实例 – 获取数组长度

package array; public class ArrayLength { public static void main(String[] args) { /** * 获取数组的长度 */ int i[] = { 1, -4, 1, -2, 4, 7, 8, 5, 4, -1, 25 }; System.out.println("数组长度是:"+i.length); } } 输出结果为 数组长度是:11 原文地址:https://www.cnblogs.com/zhuxiao

C++ 数组长度 以及 数组名作为参数 传递给函数

在看排序,首先是插入排序,思路理清后想用代码实现,然后问题来了: 如何求数组长度? 如果没记错,在Java中应该是有直接可用的方法的, Python中(序列)也有.len,在C/C++中,字符串倒是有strlen() (需要#include <string.h>) 一个办法是用 sizeof() 一.首先定义数组 int array[] = {18,10,15,7,1}; 一开始想都没想就直接在子函数里面 int array_length(int a[]){ int len = sizeof(

Java动态数组

其中java动态数组: Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList.下面介绍一下ArrayList作为Java动态数组的用法. 1.语法:add()是添加一个新的元素,remove()删除一个元素,size()获得ArrayList的长度.ArrayList的下标是从0开始. 2.示例代码 [java] view plaincopy package wang48.j

将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)

方法一:使用Arrays.asList()方法 1 2 String[] asset = {"equity", "stocks", "gold", "foreign exchange","fixed income", "futures", "options"}; List<String> assetList = Arrays.asList(asset);