数组再分配 ArrayReallocationDemo

import java.util.Arrays;


public class ArrayReallocationDemo {//Reallocation 再分配的意思

	public static void main(String[] args) {
		int[] data1 = new int[]{1,3,5,7,9};
		
		printArray(data1);//调用此方法
		/**
		 * [1,3,5,7,9]
		 */
		
		int[] data2 = Arrays.copyOf(data1, 6);//复制指定的数组,data1为要复制的数组,6为返回的副本的长度
		data2[5] = 11;//把11给data2下标为5这个值
		printArray(data2);
		/**
		 * [1,3,5,7,9,11]
		 */
		int[] data3 = Arrays.copyOfRange(data1, 2,10);//将指定数组的指定范围复制到一个新数组。
		//2为要复制的范围的初始索引(包括) 10为最后索引(不包括)
		printArray(data3);
		/**
		 * [5,7,9,0,0,0,0,0]
		 */
		
		char[] copyFrom = { 'd', 'e', 'c', 'a', 'f', 'f', 'e', 'i', 'n', 'a', 't',
		        'e', 'd' };
		    char[] copyTo = new char[7];

		    /**
		     * 从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
		     * src - 源数组。
		     * srcPos - 源数组中的起始位置。
		     * dest - 目标数组。
		     * destPos - 目标数据中的起始位置。
		     * length - 要复制的数组元素的数量。
		     */
		    System.arraycopy(copyFrom, 2, copyTo, 0, 7);
		    System.out.println(new String(copyTo));
		    /**
		     * caffein
		     */
		  
	}
	
	private static void printArray(int[] data){
		//构造一个字符串生成器,并初始化为指定的字符串内容。"["
		StringBuilder stringBuilder = new StringBuilder("[");
		for(int i = 0; i< data.length; i++){
			stringBuilder.append(data[i]);//把传进来的data循环增加到stringBuilder
			if(i < data.length - 1){//最后一个数之前
				stringBuilder.append(",");//加上 ,符号
			}
		}
		stringBuilder.append("]");//以']'符号结尾
		System.out.println(stringBuilder);
	}

}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值