Java集合容器List及其实现类

上传人:xy****7 文档编号:52434878 上传时间:2018-08-21 格式:PPT 页数:24 大小:1.93MB
返回 下载 相关 举报
Java集合容器List及其实现类_第1页
第1页 / 共24页
Java集合容器List及其实现类_第2页
第2页 / 共24页
Java集合容器List及其实现类_第3页
第3页 / 共24页
Java集合容器List及其实现类_第4页
第4页 / 共24页
Java集合容器List及其实现类_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《Java集合容器List及其实现类》由会员分享,可在线阅读,更多相关《Java集合容器List及其实现类(24页珍藏版)》请在金锄头文库上搜索。

1、补充:集合容器类List接口及其实现类 1 1本章学习目标 重点、难点Company Logo重点Set接口及HashSet和TreeSet的使用 LinkedList及ArrayList使用 HashMap、HashTable、TreeMap的使用难点LinkedList及ArrayList使用 HashMap、HashTable的使用学习目标了解集合类的框架理解各类接口之间的关系 掌握Set接口及相关类的使用掌握List接口及相关类的使用掌握Map接口及相关类的使用学习内容集合容器的框架结构 相关接口和类之间的关系 Set接口及其实现类的使用 List接口及其实现类的使用 Map接口及其实

2、现类的使用本次课学习内容及目标v了解List接口的相关方法 v掌握List接口实现类的使用 LinkedList ArrayList v了解Vector使用 v了解Stack使用3 3一、List接口vCollection接口的子接口,继承了其方法 v其元素以线线性方式存储储。 v特点: 元素可重复 元素有序 可以对元素的位置精确控制 v实现类 ArrayList LinkedList Vector StackList接口常用方法v添加元素 boolean add(E e) 向列表的尾部添加指定的元素 void add(int index, E element) 在列表的指定位置插 入指定元素

3、 boolean addAll(Collection c) 添加指定 collection 中的所有元素到此列表的结尾 boolean addAll(int index, Collection c) 将指定 collection 中的所有元素都插入到列表中的指定位置List接口常用方法v设置元素 E set(int index, E element) 用指定元素替换列表中指 定位置的元素。 v获取元素 E get(int index) 返回列表中指定位置的元素。 int indexOf(Object o) 返回此列表中第一次出现的指定 元素的索引,否则返回 -1 int lastIndexOf

4、(Object o) 返回此列表中最后出现的指 定元素的索引,否则返回 -1。 List subList(int fromIndex, int toIndex) 返回列表 中指定的 fromIndex(包括 )和 toIndex(不包括)之 间的部分视图。 List接口常用方法v移除元素 E remove(int index) 移除列表中指定位置的元素 boolean remove(Object o) 从此列表中移除第一次出 现的指定元素(如果存在) boolean removeAll(Collection c) 从列表中移除指 定 collection 中包含的其所有元素 void clea

5、r() 从列表中移除所有元素List接口常用方法v相关判断方法 boolean contains(Object o) 如果列表包含指定的元 素,则返回 true boolean containsAll(Collection c) 如果列表包含指 定 collection 的所有元素,则返回 true boolean equals(Object o) 比较指定的对象与列表是 否相等 boolean isEmpty() 如果列表不包含元素,则返回 trueList示例List list=new ArrayList(); /声明一个列表 list.add(new Integer(3); /加入列表

6、list.add(new Integer(4); list.add(new Integer(3); list.add(new Integer(2); for(int i=0;ilist.size();i+)System.out.println(list.get(i)+” ”);/get方法返回集合中的对象 3 4 3 2 Iterator it=list.iterator(); /使用迭代器获取元素 while(it.hasNext() System.out.println(it.next();/为列表排序 Collections.sort(list); for(int i=0;ilist.s

7、ize();i+)System.out.println(list.get(i)+” ”);二、ArrayList介绍v ArrayList就是传说中的动态数组,内部封装了 一个Object类型的数组 v特点: 动态的增加和减少元素 灵活的设置数组的大小 与数组相比,性能稍差ArrayList常用方法v新增方法 Void ensureCapacity(int minCapacity) 如有必要,增加此 ArrayList 实例的容量,以确保它 至少能够容纳最小容量参数所指定的元素数。 void trimToSize() 将此 ArrayList 实例的容量调整为 列表的当前大小。 void re

8、moveRange(int fromIndex, int toIndex) 移除 列表中索引在 fromIndex(包括)和 toIndex(不包括 )之间的所有元素。 课堂实践1ArrayList使用v 编写测试程序,测试ArrayList的各个方法,理解方法的 功能,掌握方法的使用。 v 通过测试程序,总结ArrayList的特点。三、LinkedList介绍v实现List接口,基于双向循环链表结构LinkedList常用方法v添加元素 voidaddFirst(E e) 将指定元素插入此列表的开头 voidaddLast(E e) 将指定元素添加到此列表的结尾 v获取元素 element

9、() 获取但不移除此列表的头(第一个元素) Eget(int index) 返回此列表中指定位置处的元素 EgetFirst() 返回此列表的第一个元素 EgetLast() 返回此列表的最后一个元素LinkedList常用方法v移除元素 E remove() 获取并移除此列表的头(第一个元素) E remove(int index) 移除此列表中指定位置处的元素 booleanremove(Object o) 从此列表中移除首次出现 的指定元素(如果存在) E removeFirst() 移除并返回此列表的第一个元素 removeLast() 移除并返回此列表的最后一个元素。 LinkedL

10、ist例子LinkedList l=new LinkedList();l.add(“abc“);l.add(“efg“);l.add(“gogo“);l.add(“error“);l.remove(3); /移除第四个元素System.out.println(l.get(0); /索引从0开始,得 到第一个元素System.out.println(l.get(1); /得到第二个元素System.out.println(l.get(2); / System.out.println(l.get(3); ArrayList和LinkedList比较vArrayList基于数组,LinkedList

11、基于链表 v随机访问元素,ArrayList优于LinkedList v增加和删除元素,LinkedList优于ArrayList v可用LinkedList实现栈、队列结构v结论: 若是随机获取元素值,则用ArrayList 若是频繁添加和删除元素,则用LinkedList四、辅助类Collectionsv类java.util.Collections提供了一些静态方法 实现了基于List集合的一些常用算法 void sort(List l) /对List中的元素排序 void shuffle(List l) /对List中的元素进行随机排列 void reverse(List l) /对Li

12、st中的元素进行逆序排列 void fill(List l,Object o) /用一个特定对象重写整个 List void copy(List dest,List src) /将源内容拷贝到目的 int binarySearch(List l,Object o) /对顺序的List采 用折半查找的方法查找特定对象课堂实践2v创创建一些商品类类,如图书类图书类 、食品类类、日用品 类类等实实体类类。 v创创建业务类业务类 ,构建容器对对象,将这这些商品放入容 器,并对对容器中的商品对对象进进行增、删删、改、查查 操作。对对容器中的数据每次操作后,都显显示容器 中的元素,以作对对比。 v创创建测

13、试类测试类 ,测试业务类测试业务类 的相关功能。五、向量类VectorvVector类以实现类似动态数组的功能 v使用了synchronized方法(线程安全)所以性 能上比ArrayList要差 v向量类提供了三种构造方法: public vector() public vector(int initialcapacity,int capacityIncrement) public vector(int initialcapacity)Vector例子import java.util.*; class VectorTest public static void main(String arg

14、s) Vector vec=new Vector(); Date date=new Date(); vec.add(new Integer(1);vec.add(new Float(3.45f); vec.add(new Double(1.2);vec.add(date); System.out.println(“Size:“+vec.size(); Integer n1=(Integer)vec.get(0); System.out.println(“向量第1个元素:“+n1.intValue(); Float n2=(Float)vec.get(1); System.out.println

15、(“向量第2个元素:“+n2.floatValue(); Double n3=(Double)vec.get(2); System.out.println(“向量第3个元素: “+n3.doubleValue(); Date n4=(Date)vec.lastElement(); System.out.println(“向量第4个元素:“+n4.toString(); if (vec.contains(date) System.out.println(“存在date“); Stack类vStack继继承自Vector,实现实现 一个后进进先出的堆 栈栈。 vStack提供5个额额外的方法使得V

16、ector得以被当 作堆栈栈使用。v基本的push和pop方法,还还有peek方法得到 栈顶栈顶 的元素,empty方法测试测试 堆栈栈是否为为空, search方法检测检测 一个元素在堆栈栈中的位置。 vStack刚创刚创 建后是空栈栈。总结总结 1v如果涉及到堆栈,队列等操作,考虑用List v需要快速插入,删除元素,应该使用 LinkedList v需要快速随机访问元素,应该使用ArrayList。 v非同步的类,其效率较高,如果多个线程可能同 时操作一个类,应该使用同步的类。 v尽量返回接口而非实际的类型,如返回List而非 ArrayList,这样如果以后需要将ArrayList换 成LinkedList时,客户端代

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号