[12]集合与JDK5新特性

一.集合

1.什么是集合

  • 集合是一种容器, 可以用来存储对象, 和数组类似, 但最大的区别在于长度可变.

2.什么是List

  • List是集合中的一种, 元素可重复, 有存储顺序.

  • List接口下的所有子类都是可重复且有序的, 我们主要使用三种: ArrayList, LinkedList, Vector 

*** 3.List的迭代

  • a.通用的

  • b.通用的

  • c.通用的

  • d.Vector特有的

4.List接口的几个实现类

  • a.ArrayList: 数组实现, 查找快, 增删慢

  • b.LinkedList: 链表实现, 增删快, 查找慢

  • c.Vector: 和ArrayList原理相同, 但线程安全, 效率低.


二.和集合相关的JDK5新特性

* 1.增强for循环

  • for (类型  变量名  : 容器) { 循环体 }

  • 容器长度是几就会循环几次, 每次循环时, 会将容器中的一个元素赋值给指定变量

  • 只要实现了Iterable接口的类都可以使用增强for循环

* 2.泛型

  • 在使用集合类的时候可以在类名后面加上"<类型>", 这样做表示该集合中只能存储指定类型的数据

  • 集合一旦定义泛型, 其中所有方法的类型都变成了指定类型, 不论添加还是获取都会改为指定的类型

  • 添加泛型之后可以将以前运行时才会出现的异常转为了编译期的错误, 方便查错.

  • 还可以省去类型强转的麻烦, 优化了代码的结构.

* 3.可变参数

  • 在函数的参数列表中, 可以使用"类型... 参数名"形式定义一个可变参数

  • 可变参数可以接收同一类型的0个到多个数据, 或者也可以接收一个数组, 然后自动将接收到的数据装入一个数组中, 在函数中对数组进行访问就可以得到实参对象

  • 可变参数只能是参数列表的最后一个参数