目录
数组和集合的区别
1、数组的容量是固定的。集合不是
1.1 数组有关:
数组创建必须初始化,不然无法使用。
数组没有add方法。
创建数组的几种方式:
输出测试:
public class ArrayTestClass {
static String[]
fs1 = new String[16],
fs2 = new String[] { "a", "b" },
fs3 = { "c", "d" };
public static void main(String[] args) {
fs1[1]="123";
System.err.println(fs1[1]);
System.err.println(fs2[1]);
System.err.println(fs3[1]);
}
}
输出:
123
b
d
1.2 数组的扩展(不确定数组长度时可用)
初始化数组 - 给数组设置值 - 越界 - 建立新数组 - 拷贝旧数组到新数组 - 指向新数组
package test;
public class ArrayTestClass {
public static void main(String[] args) {
// new 一个16位的数组
String[] fs1 = new String[16];
// 循环输出32个数字字符
for (int i = 0; i < 32; i++) {
// 检测越界后的数组
fs1 = addArr(fs1, i);
fs1[i] = "" + i;
System.err.println(fs1[i]);
}
}
/**
* 检测是否越界
*/
public static String[] addArr(String[] cs, int i) {
// 下标越界
if (i >= cs.length) {
// new 一个新数组,长度为原数组长度的3/2 第一次处理后的长度为24,需要输出32个,所以会进入两次
String[] newArr = new String[cs.length + cs.length / 2];
// 拷贝原数组到新数组。参数为:(原数组, 原数组的开始位置, 目标数组, 目标数组的开始位置, 拷贝个数)
System.arraycopy(cs, 0, newArr, 0, cs.length);
// 把原数组替换为新数组
cs = newArr;
}
return cs;
}
}
1.3、数组的排序和去重复
待续
2、集合可以不指定类型。数组不能
2.1、集合相关
待续