平平无奇直接按照下标赋值
@Test
void dilationArray() {
int[] oldArr = {1,2,3,4};
int[] nowArr = new int[7];
for (int i = 0 ; i < oldArr.length ; i++){
nowArr[i] = oldArr[i];
}
System.out.println(Arrays.toString(nowArr));//[1, 2, 3, 4, 0, 0, 0]
}
使用System.arraycopy(原数组名,起始下标,新数组名,起始下标,复制长度)
@Test
void dilationArray2() {
int[] oldArr = {1,2,3,4};
int[] nowArr = new int[7];
System.arraycopy(oldArr, 0, nowArr, 0, oldArr.length);
System.out.println(Arrays.toString(nowArr));//[1, 2, 3, 4, 0, 0, 0]
}
使用 util.Arrays 的copyOf(原数组名,新数组长度)
@Test
void dilationArray3() {
int[] oldArr = {1,2,3,4};
int[] nowArr = new int[7];
nowArr = Arrays.copyOf(oldArr, nowArr.length);
System.out.println(Arrays.toString(nowArr));//[1, 2, 3, 4, 0, 0, 0]
}
在j dk 8 之后,默认容量是 0 ,加数据后续初始化为 10 ,
底层是数组结构,
扩容增量:原容量的 0.5倍
线程不安全,查询速度快
add直接加数据就行,到容量底层就会自动帮你扩容
@Test
void dilationArrayList() {
ArrayList arrayList = new ArrayList(2);
arrayList.add("123");
arrayList.add("123");
arrayList.add("234");
System.out.println(arrayList);//[123, 123, 234]
}
默认容量为10,
底层是数组结构,
扩容增量:原容量的 1 倍,
线程安全,但速度慢
add直接加数据就行
@Test
void dilationVector() {
Vector vec = new Vector(2);
vec.add("123");
vec.add("123");
vec.add("234");
System.out.println(vec);//[123, 123, 234]
}