泛型就是定义一种模板,例如 ArrayList<T>,可以匹配任何的 class。也就是说不能是基本类型,当然可以使用对应的包装器
    一下是如何定义一个泛型数组列表:

    1. ArrayList<Employee> staff = new ArrayList<Employee>();
    2. Arrayist<Employee> staff = new ArrayList<>(); // Java SE 7
    3. staff.add(new Employee(...)); // 添加元素,如果添加满了会自动扩充
    4. staff.add(i, new Employee(...)); // 在第 i 个位置上添加元素
    5. staff.ensureCapacity(100); // 指定空间大小
    6. Arrayist<Employee> staff = new ArrayList<>(100); // 初始化时指定大小
    7. // 指定大小与数组略有不同,new Employee[100] 是分配了 100 个元素的存储空间,而 new ArrayLost<>(100) 则是拥有保存 100 个元素的潜力,随时可以扩充。
    8. staff.size(); // 查看当前元素数量
    9. staff.set(i, harry); // 替换第 i 个元素
    10. Employee e = staff.get(i); // 得到第 i 个元素
    11. Employee e = staff.remove(i); // 删除第 i 个元素,并返回该元素
    12. trimToSize(staff) // 将数组列表的存储容量削减到当前尺寸

    由于 Java SE 5.0 以前的版本没有提供泛型类,而是有一个 ArrayList 类,其中保存的类型为 Object 的元素。所以又是需要考虑兼容性。