做算法题的时候突然遇到这个知识盲区 2020.04.24
数组扩容方案一:
复制到新的数组
数组扩容方案二:
用API复制到新的数组,java.util.Arrays.copyOf(原数组名,新数组长度);
数组扩容方案三:
System.arraycopy(原数组名,起始下标,新数组名,起始下标,复制长度);
细品代码:
@org.junit.Test
public void testPrint() {
String testString = new String("Welcome to beijing");
//String转换指定长度char数组
char[] arr1 = java.util.Arrays.copyOf(testString.toCharArray(), 20);
//数组扩容方案一:复制到新的数组
char[] arr2 = new char[arr1.length*2];//声明新数组长度
for(char i=0;i<arr1.length;i++){ //复制数组
arr2[i]=arr1[i];
}
System.out.println(String.valueOf(arr2) + "\t" + arr2.length);
//数组扩容方案二:用API复制到新的数组,java.util.Arrays.copyOf(原数组名,新数组长度);
char[] arr3=java.util.Arrays.copyOf(arr1,arr1.length*3);
System.out.println(String.valueOf(arr3) + "\t" + arr3.length);
//数组扩容方案三:System.arraycopy(原数组名,起始下标,新数组名,起始下标,复制长度);
char[] arr4=new char[100];//声明新数组长度
System.arraycopy(arr1,0,arr4,0,10);
System.out.println(String.valueOf(arr4) + "\t" + arr4.length);
};