泛型就是定义一种模板,例如 ArrayList<T>
,可以匹配任何的 class。也就是说不能是基本类型,当然可以使用对应的包装器
一下是如何定义一个泛型数组列表:
ArrayList<Employee> staff = new ArrayList<Employee>();
Arrayist<Employee> staff = new ArrayList<>(); // Java SE 7
staff.add(new Employee(...)); // 添加元素,如果添加满了会自动扩充
staff.add(i, new Employee(...)); // 在第 i 个位置上添加元素
staff.ensureCapacity(100); // 指定空间大小
Arrayist<Employee> staff = new ArrayList<>(100); // 初始化时指定大小
// 指定大小与数组略有不同,new Employee[100] 是分配了 100 个元素的存储空间,而 new ArrayLost<>(100) 则是拥有保存 100 个元素的潜力,随时可以扩充。
staff.size(); // 查看当前元素数量
staff.set(i, harry); // 替换第 i 个元素
Employee e = staff.get(i); // 得到第 i 个元素
Employee e = staff.remove(i); // 删除第 i 个元素,并返回该元素
trimToSize(staff) // 将数组列表的存储容量削减到当前尺寸
由于 Java SE 5.0 以前的版本没有提供泛型类,而是有一个 ArrayList
类,其中保存的类型为 Object 的元素。所以又是需要考虑兼容性。