第五章 5.3-5.6,不包括反射和设计
5.3 泛型数组列表
ArrayList —— 为了处理java中数组长度不确定、可变的情况,一个使用类型参数的泛型类。
//新建
ArrayList<Employee> staff = new ArrayList<>();//括号中可省略Employee,菱形语法
//添加
staff.add(new Employee(......));
staff.add(i,a)//在第i个后添加
//自定义
staff.ensureCapacity(100);
ArrayList<Employee> staff = new ArrayList<>(100);
//长度
staff.size()
staff.trimTosize(100)//将大小固定为100
//赋值
staff.set(i,harry);//可理解为a[i]=harry;注意必须在add后set
Employee e = staff.get(i); //e=a[i];
//新建+赋值
ArrayList<X> list = new ArrayList<>();
while(...)
{
x = ...;
list.add(x);
}
X[] a = new X[list.size()];
list.toArray(a);//将内容移植到数组里面
//删除第n个
staff.remove(n);;
//遍历
for(Employee e:staff){do}
5.3.2 没看懂?
5.4 对象包装器与自动装箱
对象包装器类:将基本类型转换为类;
如Integer、Long、Float、Double、Short、Byte等;
其中的值在设定之后不可变,final类,不能继承
自动装箱:将类转换为基本类型;
自动拆箱:自动识别
5.5 参数可变方法
形如printf,接受的参数可变,其定义如下:
![6a5f985cffd1729bda52024f1be3a4d3.png](https://i-blog.csdnimg.cn/blog_migrate/5c65e2e957e9498873bc9b2745bb5bbb.png)
![f302bf06e1cef8fd704cdb2d494cf874.png](https://i-blog.csdnimg.cn/blog_migrate/0291103390739076461fc7841b00b7f5.jpeg)