Day16 集合-List实现类、泛型 2015/04/25 1、数据结构 组织数据的方式。 常见的数据结构:(了解一下数据结构+算法=2000、UML+设计模式) 栈、队列、数组、树、链表、图、堆。。。 数组:存储多个同一类数据的容器。 优缺点:查询快,增删慢。 链表:把一些结点通过链子连接起来的数据结构。结点:由地址(指针)域和数值域组成。 优缺点:增删快,查询慢。 2、List 三个子类:ArrayList、Vector、LinkedList ArrayList:底层数据结构是数组,查询快增删慢,线程不安全效率高; Vector:底层数据结构是数组,查询快增删慢,线程安全效率低; LinkedList:底层数据结构是链表,增删快查询慢,线程不安全效率高。 Vector的特有功能: 添加功能: Public void addElement(object obj) -----相当于------ add(object obj) 获取功能: Public Object elementAt(int index) -----相当于-------get(int index) public Enumeration elements() ------相当于------------Iterator boolean hasMoreElements() -------相当于-------- ----hasNext() Object nextElement() -----------相当于---------- ----next() 长度功能: public int size() LinkedList的特有功能: 添加功能:改变集合的结构 Void addFirst(object obj)添加到首位置 Void addLast(object obj) 获取功能:不改变集合结构 Object getFirst(object obj) Object getLast(object obj) 删除功能:改变集合的结构 Object removeFirst(object obj) Object removetLast(object obj) 面试题:通过LinkedList模拟栈结构。意思是你有一个LinkedList可以用,但是你需要自己定义一个栈集合,对外提供获取和添加功能。//见代码!!! [size=10.5000pt]3、泛型 表示任意的类型,是一种把明确数据类型的工作放在了创建对象或者调用方法时进行的特殊类型。 泛型格式:< 数据类型 > 泛型是为了解决类型转换问题的。 泛型好处: (1)解决黄色警告线问题; (2)把运行期间的类型转换异常提前到了编译期; (3)优化程序设计。不需要做强制类型转换。 什么时候用? 看API,如果类或者接口后面有< >,那么这就是泛型的体现。就是要求在使用的时候明确类型,泛型一般在集合中使用。 泛型类:把泛型定义在类上。把明确类型的工作放在了创建对象或者调用方法时候才去明确的特殊类型。 泛型方法:把泛型加在方法上。Public <E> void show(E e) 泛型接口: 如果一个接口上有泛型,在实现的时候:在写实现类的时候,已经明确接口上应该是什么类型了。 4、增强For循环 格式: For(数组或者collection集合元素的类型 变量名 :数组或者collection集合对象) { 使用变量名即可 } 作用:简化数组或者集合的变量 增强for是为了替代迭代器的,两者选其一来用。增强for底层使用的迭代器,所以也会有并发修改异常。
|